我是数据库设计的新手,我现在将演示:
我有一个MS Sql数据库,我需要添加一个表。该表包含与另一个表有关的信息。但是,没有主键的候选者(所有字段都可以是重复的)。该表唯一用于保存特定类型查询可能需要的记录,并且可以使用我的其他表也包含的字段(但从不唯一)轻松地检索它们。
具体来说,我的主表有一堆化学记录。每个化学记录都与另一组称为质量控制记录的记录相关联(在我的第二个表中)。它们由名为“BatchID”的字段关联。超级容易的部分是我可以说,“使用此BatchID获取所有记录”并获得我所需要的。但是在两个表中都可能存在多个BatchID实例(实际上通常都有),所以我需要跳过箍来链接它们。从更一般的意义上讲,从理论上讲,没有附着在任何东西上的桌子可以吗?
绝大多数简单的解决方案是将质量控制放在数据库中,与化学表无关。我需要插入至少一个其他表来将其与其他任何内容相关联,或许更多,并且使我的生活复杂化的唯一原因是我不想违反数据库设计的一些重要规则。
我的问题是,在数据库中只有一个自由浮动表是否可以?或者就是这样吗?
感谢您的帮助。
答案 0 :(得分:1)
理论上,有一个没有任何外键约束的表是可以的。但是您描述的表(您描述的两个表)应可能具有引用批处理表的外键。我们希望批处理表将“BatchID”作为其主键。
关系模型要求表至少有一个候选键。拥有一个没有候选键的SQL表几乎总是一个坏主意。