【发布时间】:2015-04-18 02:52:49
【问题描述】:
我正在尝试重构旧数据库架构的某些部分,但无法提出正确的设计。
有问题的实体是:
样本、论文、研究
论文与许多样本相关联
研究与许多样本相关
论文和研究各有各的属性,互不兼容
样本可以与多篇论文和多项研究相关联
但是,这会将论文和研究的分组分开。
它的外观如下:
我想到的另一种选择是,由于论文和研究都只是将样本组合在一起,我可以将它们合并为一个,并将组中的 FK 放入各自的论文/研究表中。
它的外观如下:
我想知道这些设计看起来是否合理,两种不同的设计之间是否有任何权衡?还有其他方法可以对关系进行建模吗?
【问题讨论】:
-
“但是,这将论文和研究的分组分开。” 我不确定我是否理解。研究和论文如何相互关联?
-
论文和研究有不同的属性,比如论文有作者列表、出版日期等,而研究可能有项目代码等内容
-
我没有问他们有什么属性;我问他们是什么关系。您曾说过“这将论文和研究的分组分开”。在现实世界中,论文和研究通常是如何组合在一起的?
-
对,我现在明白了,研究和论文可以通过拥有相同的样本来关联,所以说 paper1 = {sample1,sample2,sample3}, study1 = {sample1, sample4} - sample1 在论文 1 和研究 1。论文和研究的样本可以是不相交的,可以是相互交叉的或彼此的子集,并且样本可以是论文/研究的多种组合 - 例如paper1、study1 和 study2 中的 sample1
标签: database database-design relational-database database-schema