举个例子,一个客户
可能有多个订单
。这就是一对多关系。
当我像这个例子一样设计数据库表时,我总是会想到是否应该让 customers
表有一个 order_id
外键列,或者我是否应该让 orders
表具有 customer_id
外键。走哪条路?
在数据库设计中是否有一个规则或约定,哪种方式更好地决定哪个表应该包含另一个表的外键? (我希望我用那个例子清楚地表达了我的问题。)
澄清一下:我知道我应该在示例中的 orders
表中声明 customer_id
,但我正在寻找规则/约定 (如果有的话)来帮助我在未来轻松地决定哪个表应该声明一般的外键列。
最佳答案
在一对多关系中,外键(FK)总是在“多”表中,指向“一”表的主键(PK)。
如果您碰巧有多对多关系,那么您必须创建一个包含两个 PK 的关系表。例如:一个学生可以选择很多类(class),一个类(class)有很多学生。关系表可以称为“注册”并将包含两个 PK。
关于database - 一个简单的问题,在多对多关系中,哪个表应该有另一个表的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54343290/