SQL:创建新表或具有冗余列

时间:2017-08-18 12:27:13

标签: sql database

我有6个表:AJob,BJob,CJob,A,B和C.

  • AJob对A有一个n:1依赖,
  • BJob对B和
  • 有n:1的依赖关系
  • CJob对C的依赖性为n:1。

除了依赖关系之外,(A | B | C)Job表是相同的。

我应该创建一个新表“Jobs”并移动所有相同的列吗? (删除“(A | B | C)作业”时,我必须特别注意“(A | B | C)作业”和“作业”之间以及“作业”中条目之间的1:1依赖关系)

或者我应该将设计保留在每个工作台都有冗余列的位置?

(我必须在子查询中使用“union”来搜索,我不知道它是否有太多的规范化)

哪一个是更好的做法?

1 个答案:

答案 0 :(得分:0)

如果多个表中的列相同,则通常不需要多个表。放入一个带有列的表,以区分A,B或C ...

请阅读:https://en.wikipedia.org/wiki/Database_normalization