你好我有一个这样的数据库。
如您所见,这是一个酒店数据库,其中包含有关预订、客户和房间的所有信息。问题在于 bookings 和 BookDates 表。每个进行预订的客户都可以预订几个日期,而且这些日期不必按任何顺序排列。这就是为什么我必须创建 BookDates 以避免这种情况 但现在我遇到了如何关联这两个表的问题,因为我不能只将复合键的部分与另一个表相关联。这就是 BookDates 表现在的样子。没有主键。
问问题
257 次
2 回答
0
如果我正确理解您的问题,可以这样表述:必须为 BookDates 和 Bookings 表之间的关系创建哪些关系(外键和主键)?
如果这是我要说的问题,请创建一个结合 BookDates 中的两个字段的主键(组合必须是唯一的)。Bookings 在 BookNum 上有主键。从 BookDates 中的 BookNum 字段创建外键到 Bookings 中的 BookNum。
另一个注意点:我会将我的表和字段命名为单数。例如表 BookDate,包含字段 BookNum 和 Date。每条记录只包含一个 bookDate。当您从表中检索多个项目时,您有一个 BookDate 记录列表。
于 2015-04-29T09:14:54.350 回答
0
在 ER 图中,对于 BookDates 表,我看到您已经将 BookNum 标记为 PK & FK。FK 很好,但是使用 BookNum 字段作为 PK 将不起作用,因为 BookNum 可以重复并且不能是唯一的。您可以考虑以下选项:
在 BookNum 和 BookDates 上创建复合主键
添加一个新的 BookDatesId 作为主键,它可以是一个身份列并将其作为 PK,它将是“代理键”。
于 2015-04-29T09:33:48.273 回答