MySQL如何创建一个零或多个关系

时间:2018-01-07 13:51:00

标签: mysql cardinality

我有实体客户和实体订单,客户可以有0个或更多订单,但订单只能有1个客户。

我已经尝试过很多东西,例如在NN取消外键未选中但我无法在客户处获得外键订单

编辑:使用mySQL ERD工作台

1 个答案:

答案 0 :(得分:1)

您的customer表格会有一个唯一的customer_id列。在MySQL世界中,我们经常为这种id列使用自动增量主键。

您的order表格会有一个customer_id列,它是customer.customer_id的外键。

这允许order表具有与特定customer_id相关的任意数量的行:none,one或many。强制执行 - 检查外键关系时,只会阻止order具有不引用有效客户的customer_id值。

经典的数据设计工具以及逻辑和物理设计之间的区别可以让你在尝试做这样简单的事情时疯狂。

专家提示如果您在id列的所有位置使用相同的方式命名,数据设计工具往往效果更好,尤其是在对表进行“逆向工程”时。这就是为什么我建议使用customer.customer_idorder.customer_id而不是customer.idorder.customer_id等列名称。