为什么在一对多 (1-N) 关系中总是主键一侧放在 N 侧内,反之亦然?

Why in a relation one to many (1-N) always primary key one side put inside N side can we do vice-versa?

我正在做一个项目,但我在设计数据库时遇到了问题。我想知道为什么在 1 到 N 的关系中总是主键一侧放在 N 侧里面我们可以反之亦然吗?

比如我们有两个tables UserComment;在这些 table 中,我们必须将 User 的主键作为外键放入 Comment table 中。我们可以反过来吗?

比如我把Commenttable的主键作为外键放入Usertable

我希望您的用户 table 旨在让每个用户一行,但每个用户可能有多个评论。因此,如果您将评论外键值放在用户 table 中,您将需要一种方法将多个评论添加到一行中,可能使用诸如多值数据结构、数组或嵌套 table.

许多数据库系统确实支持 "complex" 那种属性,但不是全部,所以很大程度上取决于您使用的技术。如果您的软件允许复杂类型,那么访问它们的方法可能比访问属性的单个值更复杂。在关系数据库中,关系操作将属性视为单个值,这就是为什么在关系数据库设计中引用外键属性属于注释 table.