【问题标题】:Do I need a third table in my schema我的架构中是否需要第三个表
【发布时间】:2012-07-14 03:01:11
【问题描述】:

场景:每个“订单”只能有一个“导入文件”。所以我创建了一个表,其主要列为 *order_code* 和 *file_code* (Order_File Table) 此外,每个 "order" 可以有多个 "Genes" 。所以我创建了另一个表,其主要列为 order_codegene_code。 ( Order_Gene 表)

所以现在在前端,用户从组合框中选择一个“订单”,我们显示该订单的导入文件和该订单的基因列表。

我想知道您对这种架构设计的看法,我的设计是错误的还是正确的?谢谢。

【问题讨论】:

    标签: mysql sql schema


    【解决方案1】:

    如果我理解正确的话,这听起来是对的。导入文件是一个订单的一个属性,Genes 表是一对多关系的多方面,允许多个基因与一个订单相关联,但每个基因只能与一个订单相关联。

    如果您想将许多基因与许多订单相关联(即为多个订单“重复使用”基因表中的记录),您需要创建一个包含 order_code 和 gene_code 列的“链接表”,并创建一条记录用于两个表之间的每个链接或关联。

    【讨论】:

    • Paul,每个基因也可以属于多个订单,例如 Order1 可以有 Gene1 和 Gene2,然后 Order2 也可以有 Gene1 和 Gene2 和 Gene3 ...所以现在我需要一个链接表吗?
    • 是的,在这种情况下,您需要一个来创建正确的关系:en.wikipedia.org/wiki/Junction_table
    【解决方案2】:

    如果每个订单代码都是唯一的,那么您所说的设计将起作用。

    【讨论】:

    • 独一无二是什么意思?我们将有这样的内容:“Order1 有 File1 和 Gene 1 Gene2 Gene3 ”以及“”Order2 有 File1 和 Gene 1 Gene2 Gene4 Gene5 ”
    猜你喜欢
    • 2020-10-11
    • 2012-07-01
    • 2012-09-29
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多