我有实体客户和实体订单,一个客户可以有 0 个或多个订单,但一个订单只能有 1 个客户。
我已经尝试了很多事情,比如在 NN 取消选中外键,但我无法在客户处获得外键订单
编辑:使用 mySQL ERD 工作台
最佳答案
您的customer
表将有一个唯一的customer_id
列。在 MySQL 世界中,我们经常为这种 id
列使用自动递增主键。
您的order
表将有一个customer_id
列,它是customer.customer_id
的外键。
这允许 order
表具有与特定 customer_id
相关的任意数量的行:无、一个或多个。外键关系在强制执行(检查)时只是防止 order
具有引用无效客户的 customer_id
值。
经典数据设计工具在逻辑设计和物理设计之间存在差异,当您尝试做这样简单的事情时,可能会让您抓狂。
专业提示 如果您在所有地方使用相同的方式命名您的 id
列,数据设计工具往往会更好地工作,尤其是在对您的“逆向工程”进行“逆向工程”时表。这就是为什么我建议列名像 customer.customer_id
和 order.customer_id
而不是 customer.id
和 order.customer_id
.
关于MySQL如何创建一对零或多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48137780/