Die*_*ego 3 mysql database erd foreign-keys relational-database
对不起,如果我的问题看起来太明显了,但我仍然找不到数据库模型关系之间的逻辑。
一对一:
如果我的客户只有一个 地址,我必须将外键放在哪里?
我一开始认为把它放在顾客的桌子上会是个好主意;带有外键的一列引用地址的 id。
因为如果我需要创建一个客户,首先我需要创建一个地址。

但是我在互联网上找到了一些例子,他们在地址表中放置了一个外键,指的是客户的 id

一对多:
如果客户可以有多个地址,那么同样的问题也适用,我应该在哪个表中放置我的外键?
外键位于“多”侧。
例如,如果 asales_order最多与 1 相关联customer,并且 acustomer可以有零、一个或多个sales_order
然后我们放入表中,作为customer_id对sales_order表中(唯一)id列的引用customer。
这意味着我们首先需要添加一行 to ,customer然后才能sales_order为 that添加一个customer。(外键约束将阻止我们在添加行sales_order有一个值customer_id列不存在中id柱customer。
——
对于一对一关系的特殊情况,我们可以以与一对多相同的方式实现,在外键列上增加一个 UNIQUE 约束。这实际上归结为决定关系的哪个方向是强制性的,哪个是可选的。基本上,我们将首先向哪个表添加一行?我们稍后添加行的表将具有引用我们之前添加行的表的外键约束...