0

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

ответ

1

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

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