比如有一张表:
产品 id
属性 1(字符串)
属性 2(字符串)
属性 3(字符串)
属性需要国际化 /多语言
如何设计才能比较科学的存取呢?
1
mhycy 2016-03-09 18:10:50 +08:00
表 0 :外部产品 id, 发布时间, 备注
表 1 : 产品 ID, 对应外部 id, 更新时间, 属性表, 可用标记, 备注 表 2 : 产品 id, 属性, 取值, 语言标记, 可用标记, 备注 依据需求会有别的选择 |
2
jugelizi 2016-03-09 18:20:38 +08:00
存就存一种吧 字母就好了
配置里放上多种语言翻译 显示时根据用户设置调用翻译 MySQL 不干这事 |
3
maomaomao001 OP |
4
mhycy 2016-03-09 18:45:56 +08:00
|
5
gkiwi 2016-03-09 19:04:41 +08:00
不晓得你用什么后端框架,这个一般在框架级别上应该会有插件支持,可以去搜搜看。
比如我用的 django ,就会有相应的 django-modeltranslation 只要在相应 model 里稍作配置,生成的 mysql 表里面就有对应的多语言字段,比如 name ,会有:name,name_zh_cn,name_en 这样子,在后台编辑的时候,自然就会多出来这些。。这样子客户在编辑的时候,自己填上中英文就好了。 |
6
cevincheung 2016-03-09 19:07:01 +08:00
拆出一个表来存多语言属性。根据 key 做索引+商品 ID 索引关联商品表。
|
7
gkiwi 2016-03-09 19:08:14 +08:00
不过像 mhycy 说的,可以在表的级别上做多语言处理,需要增加语言的时候,直接多增加一张表就好了,我这个新增语言就需要变表结构,扩展性不够好。不过本来就字段少,所以还可以接受。
另外可以说说应用场景,是文档类的,还是像苹果那样子的多语言宣传类的。 |
8
pichina 2016-03-09 19:33:05 +08:00
属性都用 utf-8 ,哪个国家的语言都可以。
|
9
maomaomao001 OP @gkiwi java jfinal
|
10
maomaomao001 OP |
11
akira 2016-03-11 22:58:43 +08:00
id ,字符串变量名,字符串中文,字符串英文
数据库只是持久化 不要到用的时候才来加载 |