我对我的数据库设计有疑问。
我想保存一些关于省和国家的信息。一开始我以为我可以将所有这些信息保存在一个表中(General_info
)。然后对于该表中的每条记录;属于国家的列的值应重复。
另一个想法是将这个表分成两个表(General_info_country
和general_info_province
)。第一个表只有 3 列,另一个超过 10 列。
我该怎么办?哪种方法更有效?
我对我的数据库设计有疑问。
我想保存一些关于省和国家的信息。一开始我以为我可以将所有这些信息保存在一个表中(General_info
)。然后对于该表中的每条记录;属于国家的列的值应重复。
另一个想法是将这个表分成两个表(General_info_country
和general_info_province
)。第一个表只有 3 列,另一个超过 10 列。
我该怎么办?哪种方法更有效?
第一种方法(一个大表)的最大问题是,如果任何一个国家信息发生变化,您需要更新多行,这意味着您可能会犯错误并最终得到不一致的信息。
第二种方法被规范化并被认为是更好的关系设计。
如果关系是一对一的并且将保持一对一的关系,那么您可以双向进行。但是如果是一对多,那么当然你必须拆分它们,并且在多部分中有外键
在关系是一对一的情况下,问题就变成了,您打算多频繁地使用所有属性?
如果您要经常一起使用这两个表,那么我建议您不要拆分它们,因为您需要在查询中大量加入它们。
但是,如果您要单独使用这两个故事而不是同时使用两个表中的信息,那么将它们分开可以节省一些时间。