oracle里,如果一个实体表的属性过多,比如30个属性。应该使用哪种结构创建表比较好呢?
方案1:
实体1
主键 属性1 属性2 ...属性30
方案2:
主键 属性1 ...属性15
实体2
主键 属性16...属性30
同一条数据在两个表中,主键保持一致。
根据不同的业务场景,两种方案都是有用武之地的。
因为join的代价是巨大的,所以方案2会在这种场景下适用:
当一个实体的某些属性很常用,而另外一些属性并不常用,或者另外的属性是大字段类型,并不参与查询,那么就可以考虑拆表。