Внешний ключ дочерней таблицы зависит от родительского поля - PullRequest
0 голосов
/ 03 мая 2010

Использование SQL2005 / 2008. Допустим, у меня есть таблица отелей (HotelID, HotelName) и таблица номеров (RoomID, HotelID, RoomName) Hotel -> Номер 1: M от HotelID RoomID - это PK внутри комнаты Теперь у меня есть таблица контрактов (ContractID, HotelID, ContractDescription) и ContractRate (ContractRateID, ContractID, RoomID, тариф) Все основные и внешние ключи определены, но, ¿Как лучше всего связать RoomID в ContractRate с Room, учитывая, что RoomID может быть только из значений, связанных с HotelID в Room? В настоящее время у меня есть FK для ContractRate.RoomID -> Room.RoomID, но для этого нужен дополнительный фильтр Room.HotelID, являющийся ContractRate -> Contract.HotelID, который я могу применить в приложении, но хотел бы знать, можно ли определить / применить в базе данных (или если мне нужно переопределить БД) Лучшие пожелания, Juanro

1 Ответ

1 голос
/ 10 мая 2010

Я думаю, что вы должны поместить RoomID в договор и таблицу ContractRate для нормализации. но в текущем сценарии никто не выполняет нормировку, поэтому в обеих таблицах укажите hotelID и RoomID согласно моему предложению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...