0

我对数据库设计真的很陌生,我现在将演示:

我有一个需要向其中添加表的 MS Sql 数据库。该表包含与另一个表有关的信息。但是,没有候选主键(所有字段都可以重复)。该表的唯一用途是保存某种查询可能需要的记录,并且可以使用我的其他表也包含的字段(但绝不是唯一的)非常容易地检索它们。

具体来说,我的主表有一堆化学记录。每个化学记录都与另一组称为质量控制记录的记录相关联(在我的第二个表中)。它们由一个名为“BatchID”的字段关联。超级简单的部分是我可以说,“使用此 BatchID 获取所有记录”并得到我需要的东西。但是两个表中都可以有任何 BatchID 的多个实例(事实上,通常都有),所以我需要跳过箍来链接它们。在更一般的意义上,理论上,可以让一张桌子漂浮在周围而不连接任何东西吗?

最简单的解决方案是将质量控制放在数据库中,与化学表无关。我需要插入至少一个其他表以将其与其他任何东西相关联,也许更多,而让我的生活如此复杂的唯一原因是我不想违反数据库设计的一些重要原则。

我的问题是,在数据库中有一个自由浮动表是否可以?还是说出来了?

谢谢你的帮助。

4

1 回答 1

1

理论上,没有任何外键约束的表是可以的。但是您描述的表(您描述的两个表)可能应该一个引用批次表的外键。我们希望批处理表将“BatchID”作为其主键。

关系模型要求表至少有一个候选键。拥有一个没有候选键的 SQL 表几乎总是一个坏主意。

于 2012-12-20T23:55:02.880 回答