【问题标题】:How to do a database relation to entities that share same fields如何与共享相同字段的实体建立数据库关系
【发布时间】:2017-12-28 20:36:44
【问题描述】:

我有两个实体,一个是父母,另一个是孩子。我有父母的统计数据(计数、浏览次数、cmets),也有父母孩子的统计数据(计数、浏览次数、cmets)。父母和孩子共享相同的字段,但他们有一对多的关系(一个父母有很多孩子)。

我对如何模拟这种情况感到困惑。

我不确定是否会更有效地创建两个表并使用外键(表将几乎具有相同的字段,除了子表将具有 parentId)。

另一种情况可以将所有数据(父子数据)放在同一个表中,并尝试建立自身关系。

哪个选项更有效?

我愿意考虑其他人的建议。

请注意,此表将存储数百万条记录,稍后将选择。

【问题讨论】:

  • 请展示一些设计。 (无论如何,您的描述都太模糊了。)请阅读并采取行动minimal reproducible example。 “高效”没有任何意义——请搜索有关它和同义词的问题,包括我关于“最佳”的 cmets。

标签: database database-design relational-database


【解决方案1】:

根据你的解释,

除了子表之外,表几乎具有相同的字段 会有一个 parentId

最好使用一元关系并将parentchild放在一个表中,并为父母使用nullparentId

但是有时我们可以将一些属性提取到另一个表中。
如果某些字段的操作太多(例如某些字段的更新太多),最好将它们提取到其他表中。

在这种情况下(如果您对这些字段有很多操作),您可以将countviewscomments 放在其他表中,并在主表之间建立一对一的关系。

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多