mysql如何创建一对零或多关系

b4qexyjb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(454)

我有实体客户和实体订单,一个客户可以有0个或多个订单,但一个订单只能有1个客户。
我已经尝试了很多事情,如使外键在nn取消检查,但我不能在客户外键订单
编辑:使用mysql erd workbench

z9smfwbn

z9smfwbn1#

你的 customer 表将具有唯一的 customer_id 列。在mysql世界中,我们经常使用自动递增的主键来实现这类功能 id 列。
你的 order table会有一个 customer_id 列的外键 customer.customer_id .
这允许 order 表中包含与特定 customer_id :无、一个或多个。当强制(检查)外键关系时,它只会阻止 order 从有一个 customer_id 没有引用有效客户的值。
经典的数据设计工具将逻辑设计和物理设计区分开来,当你试图做这样简单的事情时,它们会让你发疯。
如果你说出你的名字 id 列无论在哪里使用都是一样的,数据设计工具往往工作得更好,尤其是在对表进行“反向工程”时。这就是为什么我建议列名称像 customer.customer_id 以及 order.customer_id 而不是 customer.id 以及 order.customer_id .

相关问题