将表分成子表的缺点和优点

时间:2015-06-16 15:21:05

标签: ruby-on-rails database database-design

假设我有一个包含100个字段的表,可以细分为多个子表,使用公钥外键我可以连接这些表。

table_a: field1, field2, field_3, field_3_sub_field1, field_3_sub_field2, ....field_100

现在要么保持原样,要么我可以创建anather表field3

field3: field_3_sub_field1, field_3_sub_field2, 

并获得简化table_a

table_a: field1, field2, ....field_100, field_3_id

现在我的问题是这有什么优点和缺点?

3 个答案:

答案 0 :(得分:2)

除了一些专业用途,您应该按照关系原则设计数据库模式,适当使用规范化和约束。

可能存在偏离这种情况可能带来好处的情况,但在不知道具体情况的情况下提供有意义的建议实际上是不可能的。关于该主题的一般性建议可能会产生误导。

答案 1 :(得分:1)

在一般情况下,我认为将您的表分成几个表没有任何好处。

但是,在某些情况下,例如,如果您知道field3,那么您将拥有一些重复值(主表的多行相同field3field3_sub...),那么将主表划分为多个表将允许您通过规范化数据来赢得空间(即在table_a中,多个field_3_id将相同并指向相同的数据。)

您应该更加具体地了解您在表格中存储的内容,以获得更准确的答案。

答案 2 :(得分:1)

就我个人而言,如果你知道你的桌子会增长分而治之

,我会说你想做的不利是不好的做法。