我有一个简单的产品数据库。
每件产品都是N:1,涉及多个属性,如材质,性别,形状等。
每个属性都是一个表格(例如表格“形状”,包括方形,圆形和其他行)
现在我想“翻译”每个属性,例如,我希望“square”记录与“quadrato”(it),“carré”(fr)等相关联。 “languages”是另一个表(it,fr,en),可以添加或删除语言,因此列“it_value”,“fr_value”显然是不可能和丑陋的。
我正在考虑
您认为其他解决方案可能比这更有效或更优雅吗?
(很抱歉没有张贴ER图,但我不是那么'图形'的人!;)
答案 0 :(得分:1)
形状/材料表的相似程度如何?你能不能用一个带有“属性类型”(形状/材料)和“属性名称”(方形,棉花等等)字段集的表来实现这个目标吗?
如果是这样,那么我可能会使用类似的东西:
items: id, name
languages: id, name
items_translations: item_id, language_id, name
items表中的'name'将是您系统的默认语言(例如英语),任何翻译都将在items_translations表的'name'字段中。
答案 1 :(得分:1)
听起来不错。
您可以使用更抽象的表示形式,但我认为您的显式映射方法更容易理解,因此更好。