我应该把桌子分开吗?

时间:2012-11-19 11:50:43

标签: database database-design

我对我的数据库设计有疑问。

我想保存一些关于省和国家的信息。首先,我认为我可以将所有这些信息保存在一个表中(General_info)。然后对于此表中的每条记录;应重复属于国家/地区的列值。

另一个想法是将此表分成两个表(General_info_countrygeneral_info_province)。第一个表只有3列,另一个表只有10列。

我该怎么办?哪种方法更有效?

2 个答案:

答案 0 :(得分:3)

第一种方法(一个大表)的最大问题是,如果任何一个国家/地区信息发生变化,您需要更新多行,这意味着您可能会犯错并最终得到不一致的信息。

第二种方法是标准化的,被认为是一种更好的关系设计。

答案 1 :(得分:0)

如果关系是一对一的并且将保持一对一,那么您可以双向进行。 但是,如果它是一对多,那么当然你必须拆分它们,并在许多部分中使用外键

在问题变为一对一的情况下,您将多久使用一次所有属性?

如果您要经常同时使用这两个表,那么我建议您不要拆分它们,因为您需要在查询中加入它们。

但是如果你打算单独使用2个故事而不是同时使用两个表中的信息,那么拆分它们可以节省你一些时间。