我正在尝试创建一个理论汽车租赁公司的简单数据库。下图显示了我目前的关系。
但是,当我尝试为一个客户分配多个汽车时,我收到以下错误消息:
如果有人可以告诉我为什么会出现这种情况以及要改变什么,我会非常感激,如果需要更多信息来解决这个问题!感谢
答案 0 :(得分:2)
CustomerID
是主键,正在第二行重复。主键必须是唯一的。
您已在客户和预订之间创建了1对1的关系。这意味着每个客户可能只有一个预订,每个预订可能只有一个客户。这就是为什么你不得不复制CustomerID
以便用不同的汽车添加预订。
答案 1 :(得分:1)
您的ER图表错了。 假设您想要零,一个客户 - >许多汽车,然后正确的模式是将0,1的外键插入到Many的表中。
因此,您的Cars表应具有CustomerId的外键。
客户表根本不了解汽车的正常性。
编辑: 看看要求/模型,这可能是很多很多。 即许多客户随着时间的推移租车或汽车。 在这种情况下,为了保持正常,你需要一个联结表 - 例如汽车 - 有两个主键的客户,CustomerId和CarId。 这也是您提供有关该关系的信息的地方,例如租用的日期等。