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