在数据库中的一对一或一对多关系中,table 必须具有外键?

In a one to one or one to many relationship in a database, which table must have the foreign key?

抱歉,如果我的问题看起来太明显了,但我仍然找不到数据库模型关系之间的逻辑。

一对一:

如果我的客户只有一个地址,我必须将外键放在哪里?

我首先想到把它放在客户的 table 上是个好主意;一列带有引用地址 ID 的外键。

因为如果我需要创建一个客户,首先我需要创建一个地址。

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

一对多:

如果客户 可以有多个地址,同样的问题也适用,我应该在其中 table 放置我的外键吗?

外键在 "many" 一侧。

例如,如果 sales_order 最多与一个 customer 关联,并且 customer 可以有零个、一个或多个 sales_order

然后我们将customer_id放在sales_ordertable中,作为对customer[=38=中(唯一)id列的引用].

这意味着我们首先需要向 customer 添加一行,然后才能为 customer 添加 sales_order。 (外键约束将阻止我们在 sales_order 中添加一行,该行在 customer_id 列中的值不存在于 customerid 列中。

--

对于一对一关系的特殊情况,我们可以用与一对多相同的方式来实现,在外键列上附加一个 UNIQUE 约束。这实际上归结为决定关系的哪个方向是强制性的,哪个是可选的。基本上,我们首先向哪个 table 添加一行?我们稍后添加行的 table 将具有引用我们先前添加行的 table 的外键约束...