2011-09-12 3 views
0

Привет, я делаю систему бронирования, и у меня возникают проблемы с моим столом, кто-то может помочь мне с моей проблемой. У меня есть клиент стола и резервирование стола. Мой клиентский стол обрабатывает всю информацию о клиентах и ​​информацию о бронировании.Справка по вставке базы данных?

Таблица моих клиентов имеет идентификатор клиента, который является первичным ключом и автоматическим приращением. и В моей таблице бронирования есть идентификатор резервирования, который является первичным ключом и автоматическим приращением.

МОЯ ПРОБЛЕМА ... Как я мог подключить эти два?

У меня есть большая проблема с тем, как присоединиться к ним в моей инструкции select, потому что я не знаю, какие значения я буду вступать.

* Примечание: Btw, я использую winform C#, и я отделил добавленного клиента и добавил данные о бронировании. Мне также интересно, если я могу включать заявление 2 вставки в одну кнопку или добавить их по отдельности ..

+1

Было бы полезно ознакомиться с нормализацией базы данных, если вы еще этого не сделали. Это даст вам пример о том, как работают ключи и внешние ключи, и почему они важны. http://en.wikipedia.org/wiki/Database_normalization Зная, как нормализовать БД, это первый шаг к пониманию того, как денормализовать (сгладить) его обратно с помощью SQL-соединений. – EtherDragon

ответ

2

Используйте SQL JOIN statement в селектов QUERY:

SELECT c.CustomerName, r.ReservationTime 
FROM reservation r 
JOIN customer c ON r.CustomerId = c.CustomerId 

Edit: Это звучит, как вы испытываете проблема с пониманием того, как получить вновь созданный CustomerId, чтобы включить его в таблицу резервирования. Ключ здесь LAST_INSERT_ID(). После вставки в Клиент получите значение от LAST_INSERT_ID() - это вновь созданный CustomerId. Затем вы можете использовать это значение при вставке в Резервирование. Например:

INSERT INTO Customer (CustomerName) 
VALUES ('Joe Schmoe'); 

INSERT INTO Reservation (ReservationTime, CustomerId) 
VALUES ('2011-09-12 18:30:00', LAST_INSERT_ID()); 

Синтаксические ошибки Pardon - SQL Server - это мой основной язык, если вы еще не собрали это.

+0

Я получаю ваше мнение. Но как я могу узнать, какой идентификатор клиента я буду помещать в таблицу бронирования? Как я узнаю, что эта оговорка имеет идентификатор клиента 1? это моя проблема T_T –

+0

Взгляните на ['@@ Identity'] (http://msdn.microsoft.com/en-us/library/ms187342.aspx). После того, как вы введете в таблицу Customer, используйте значение '@ @ Identity' в качестве CustomerId в таблице резервирования. – gilly3

+0

Спасибо, мистер Гилли. Так как это будет выглядеть? –

1

Ну, ваша таблица бронирования также должна иметь идентификатор клиента.
Как я понимаю, это еще не так.
Но это должно быть так, потому что каждое резервирование принадлежит клиенту.

Затем вы можете присоединиться к обеим таблицам по идентификатору клиента.

+0

Сэр, как бы я знал, что у custID есть определенная оговорка? –

+0

Как выглядит ваш пользовательский интерфейс для сохранения бронирования? Возможно, ваши пользователи должны выбрать клиента, для которого резервируется, не так ли? Вам нужно вставить идентификатор этого клиента в таблицу бронирования. –

+0

So. У меня будет сводка со всем клиентом в моей базе данных, и пользователь выберет, у какого клиента будет резервирование? –

Смежные вопросы