我应该在表中添加外键的公共属性吗?

时间:2011-03-21 20:20:14

标签: database database-design normalization

我有一个代表代理收集的测试数据数据库。测试数据被组合在一起(事后)到结果集中。当测试进来时,它们将使用相应代理的ID存储在数据库中:

TEST_ID TEST_OWNER TIMESTAMP RESULT_ID
      1          1         0      null
      2          1        15      null
      3          2        30      null
      4          2        32      null
      5          1        34      null

结果集在稍后的时间生成,以便在相似的时间范围内对发生的测试进行分组。当测试进入时,无法做出这种判断。

RESULT_ID
        1
        2
        3

结果集中的所有测试必须属于同一所有者。我可以确保这个(在代码中),因为我在以后的操作中将结果ID分配给测试,但如果我的结果集表中有TEST_OWNER字段,那么有些事情会更容易。

添加此字段会违反某些规范化目标吗? TEST_OWNER信息将被复制,即使其中一个实例是隐含的。我不是DBA,我不想做那些糟糕的事情。

1 个答案:

答案 0 :(得分:1)

Jim我不完全确定你是否说这是你的数据库中的一个表?

TEST_ID TEST_OWNER TIMESTAMP RESULT_ID
      1          1         0      null
      2          1        15      null
      3          2        30      null
      4          2        32      null
      5          1        34      null

如果是这样,我要做的第一件事是将结果属性拉出此表以实现规范化。或者这是你的结果表?

这些结果是否来自数据库中的其他数据?如果是这样,我不认为需要复制东西并存储结果(计算)。只需根据需要派生并保持数据库清洁。

如果您需要进一步的信息,我需要更好地了解您所呈现的内容。