数据库设计 - 将表链接到多个表(并不总是相同)

时间:2013-08-09 15:01:16

标签: database database-design

我正在开发一种工具来帮助特定人员跟踪他们的工作。 每个人都进行干预,在每个人中,可能会在大量测试中选择一些测试。每个测试都有自己的特点,它们非常不同。

我找不到一个好看的设计。现在,我有这个:

  • 干预表
  • 用于引用所进行的测试和共同特征(父类测试的种类)的表。
  • 每种类型测试的表格,具有自己的特征
  • 用于指示所有测试类型的类型表

这看起来像:

干预

  • _id
  • 日期
  • user_id(外键)

测试

  • _id
  • intervention_id(FK)
  • type_id(FK)
  • generic_feature_a

TEST_1

  • _id
  • test_id(FK)
  • time_spent
  • result_a

Test_2

  • _id
  • test_id(FK)
  • result_b

...

类型

  • _id
  • TEST_NAME

这允许我存储所有数据,但这对它提出请求似乎不太好。例如,如果我想要检索所有测试和相关的结果,我必须使用正确的intervention_id检索所有测试(这很好)。 但是对于结果,我必须使用前面的查询,并为每个测试获取测试的名称,并在正确的表中发出请求。

我还想删除通用表测试并直接在特定测试表中插入intervention_id。但是获得所有测试的清单变得更加困难......

或两者都做并保留通用测试表并插入intervention_id?

对此有何帮助? 有更好的方法来存储数据吗? 如果没有,3种解决方案中的哪一种对你来说最好?

谢谢大家!

1 个答案:

答案 0 :(得分:0)

最后我保留了第一个架构。它允许我一次检索给定用户的所有测试,如果我需要有关测试的更多信息,则可以深入研究