【发布时间】:2014-10-13 17:09:06
【问题描述】:
我正在开发一个应该是多语言的网站,并且在某些产品中,字段的数量可能比其他产品多(例如,将来产品可能具有旧产品没有的额外功能)。由于这个问题,我决定创建一个产品表,其中包含所有产品都可以具有的公共字段,并且所有语言都相同(如宽度和高度),并添加另外三个表来存储额外的字段,如下所示:
field (id,name)
field_name(field_id,lang_id,name)
field_value(product_id, field_id, lang_id, value)
通过这样做,我可以从一个表中获取所有值,但问题是值可以是不同的类型,例如它可以是数字或文本。我检查了一个开源项目“Drupal”,他们为每种字段类型创建了一个表,通过连接,他们将检索节点数据。我想知道哪种方式对性能的影响更大?为每个额外字段创建一个表,或者将它们的所有值存储在一个表中并通过强制转换即时转换它们的类型?
提前谢谢你
【问题讨论】:
标签: mysql performance database-design