【问题标题】:Foreign key on a child table dependant on parent field子表上的外键依赖于父字段
【发布时间】:2010-05-03 15:40:03
【问题描述】:

使用 SQL2005/2008。 假设我有一个酒店表 (HotelID, HotelName) 和一个房间表 (RoomID, HotelID, RoomName) Hotel -> Room 1:M by HotelID RoomID is PK inside Room 现在我有一个合同表(ContractID、HotelID、ContractDescription)和 ContractRate(ContractRateID、ContractID、RoomID、Rate) 定义的所有主键和外键,但是, ¿ 考虑到 RoomID 只能通过与 Room 中的 HotelID 关联的值,将 ContractRate 中的 RoomID 与 Room 相关联的最佳方法是什么? 目前我在 ContractRate.RoomID -> Room.RoomID 上有一个 FK,但这需要 Room.HotelID 的附加过滤器为 ContractRate -> Contract.HotelID,我可以在应用程序中强制执行,但想知道是否可以定义/强制执行在数据库中(或者如果我必须重新定义数据库) 最好的问候, 胡安罗

【问题讨论】:

    标签: sql-server database database-design relational-database


    【解决方案1】:

    我认为您必须将 RoomID 放入合同和 ContractRate 表中以进行标准化。 但在目前的情况下,没有人进行标准化,所以按照我的建议将 hotelID 和 RoomID 都放在两个表中。

    【讨论】:

      猜你喜欢
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多