[SQL ] 多语系的 table 的 Best practice?

楼主: iceman5566 (iceman5566)   2020-12-13 17:45:12
各位前辈大家好
想请问一下在多语系的 table 你们会怎么设计会是最好的 best practice?
我这边有两种做法
我以 Product 当作翻译
1. 把语系在字段直接摊开,例如 en_name, jp_name, tw_name...
优点:SQL Query 很好撰写,不需要任何的 join
缺点:Scalability 很差,如果今天又新增多语系字段,例如 remark 要多语系
有十个语言的话,多一个新的字段就在新增十个新字段。
2. 新建 language table,例如 product_language,
然后用 language id 跟 product_id 来区别各个语言名称。
优点:不用摊开字段,table 长相比较精简
缺点:Join 会有成本,如果今天是大 table 会要考虑效能问题
不晓得大大们有没有其他 solution?
作者: e23882 (呆呆要不要买降有)   2020-12-14 10:40:00
用RESOURCE
作者: nyitalumnus (阿华)   2019-01-31 12:58:00
第一种作法没有正规化。第二种作法如果table有index的话,其实效能不会差。

Links booklink

Contact Us: admin [ a t ] ucptt.com