合并两个表还是将它们分开?

时间:2011-06-15 13:15:16

标签: sql database database-design

结构

TableA (each row in TableA can map to one or more row in circle)
    Id
    Name

TableB (each row in TableB can map to only one row in TableA)
    Id
    TableAId
    UniqueValue

示例数据

TableA
    1,Sooprise

TableB
    1,1,something
    2,1,somethingElse

因此,在这种情况下,“UniqueValue”只能将自己与TableA中的一行相关联。结合表格会更有意义吗?

结构

TableC
    Id
    Name
    UniqueValue

示例数据

TableC
    1,Sooprise,something
    2,Sooprise,somethingElse

我更倾向于第一种选择,但由于从B到A的一对一映射,这些表可以组合。我确实理解组合这些表会导致数据冗余(名称),但是可能会因不使用两个关系表而产生异常?

3 个答案:

答案 0 :(得分:3)

我将这两个表分开。 如果需要,我会创建一个视图来获取下一个结构。

答案 1 :(得分:1)

我认为选择将取决于表格的用途。如果你看一下数据库空间(这可能不是一个问题),如果你担心更新,那么两个表可能是更好的设计。 (如果1,Sooprise变为1,Sooprise_New您想要更新表B中的所有记录,还是希望值保持为1,Sooprise为某些条目)?

我发现,对于未来数据结构的变化,最好保留twp表

答案 2 :(得分:0)

这取决于。用的表是什么?如果您发现自己同时需要来自多个关系表的数据,那么加入它们可能是个好主意。如果它们的使用在很大程度上是独立的,并且您觉得单独的表格可以提高清晰度,