为什么在一对多 (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 User
和Comment
;在这些 table 中,我们必须将 User
的主键作为外键放入 Comment
table 中。我们可以反过来吗?
比如我把Comment
table的主键作为外键放入User
table
我希望您的用户 table 旨在让每个用户一行,但每个用户可能有多个评论。因此,如果您将评论外键值放在用户 table 中,您将需要一种方法将多个评论添加到一行中,可能使用诸如多值数据结构、数组或嵌套 table.
许多数据库系统确实支持 "complex" 那种属性,但不是全部,所以很大程度上取决于您使用的技术。如果您的软件允许复杂类型,那么访问它们的方法可能比访问属性的单个值更复杂。在关系数据库中,关系操作将属性视为单个值,这就是为什么在关系数据库设计中引用外键属性属于注释 table.
我正在做一个项目,但我在设计数据库时遇到了问题。我想知道为什么在 1 到 N 的关系中总是主键一侧放在 N 侧里面我们可以反之亦然吗?
比如我们有两个tables User
和Comment
;在这些 table 中,我们必须将 User
的主键作为外键放入 Comment
table 中。我们可以反过来吗?
比如我把Comment
table的主键作为外键放入User
table
我希望您的用户 table 旨在让每个用户一行,但每个用户可能有多个评论。因此,如果您将评论外键值放在用户 table 中,您将需要一种方法将多个评论添加到一行中,可能使用诸如多值数据结构、数组或嵌套 table.
许多数据库系统确实支持 "complex" 那种属性,但不是全部,所以很大程度上取决于您使用的技术。如果您的软件允许复杂类型,那么访问它们的方法可能比访问属性的单个值更复杂。在关系数据库中,关系操作将属性视为单个值,这就是为什么在关系数据库设计中引用外键属性属于注释 table.