V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
maomaomao001
V2EX  ›  MySQL

mysql [数据库] 如何国际化?

  •  
  •   maomaomao001 · 2016-03-09 18:07:12 +08:00 · 7562 次点击
    这是一个创建于 3165 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有一张表:
    产品 id
    属性 1(字符串)
    属性 2(字符串)
    属性 3(字符串)

    属性需要国际化 /多语言

    如何设计才能比较科学的存取呢?

    11 条回复    2016-03-11 22:58:43 +08:00
    mhycy
        1
    mhycy  
       2016-03-09 18:10:50 +08:00
    表 0 :外部产品 id, 发布时间, 备注
    表 1 : 产品 ID, 对应外部 id, 更新时间, 属性表, 可用标记, 备注
    表 2 : 产品 id, 属性, 取值, 语言标记, 可用标记, 备注


    依据需求会有别的选择
    jugelizi
        2
    jugelizi  
       2016-03-09 18:20:38 +08:00
    存就存一种吧 字母就好了
    配置里放上多种语言翻译
    显示时根据用户设置调用翻译
    MySQL 不干这事
    maomaomao001
        3
    maomaomao001  
    OP
       2016-03-09 18:42:29 +08:00
    @mhycy 这种方式下表 2 数据会很多很多很多。


    @jugelizi 如果是性别之类的,写个配置文件还好说。
    mhycy
        4
    mhycy  
       2016-03-09 18:45:56 +08:00
    @maomaomao001

    后期非常容易分表,这是优点,不需要过早优化。
    gkiwi
        5
    gkiwi  
       2016-03-09 19:04:41 +08:00
    不晓得你用什么后端框架,这个一般在框架级别上应该会有插件支持,可以去搜搜看。
    比如我用的 django ,就会有相应的 django-modeltranslation 只要在相应 model 里稍作配置,生成的 mysql 表里面就有对应的多语言字段,比如 name ,会有:name,name_zh_cn,name_en 这样子,在后台编辑的时候,自然就会多出来这些。。这样子客户在编辑的时候,自己填上中英文就好了。
    cevincheung
        6
    cevincheung  
       2016-03-09 19:07:01 +08:00
    拆出一个表来存多语言属性。根据 key 做索引+商品 ID 索引关联商品表。
    gkiwi
        7
    gkiwi  
       2016-03-09 19:08:14 +08:00
    不过像 mhycy 说的,可以在表的级别上做多语言处理,需要增加语言的时候,直接多增加一张表就好了,我这个新增语言就需要变表结构,扩展性不够好。不过本来就字段少,所以还可以接受。

    另外可以说说应用场景,是文档类的,还是像苹果那样子的多语言宣传类的。
    pichina
        8
    pichina  
       2016-03-09 19:33:05 +08:00
    属性都用 utf-8 ,哪个国家的语言都可以。
    maomaomao001
        9
    maomaomao001  
    OP
       2016-03-09 22:41:11 +08:00 via Android
    @gkiwi java jfinal
    maomaomao001
        10
    maomaomao001  
    OP
       2016-03-09 22:43:06 +08:00 via Android
    @cevincheung
    看来先阶段这个是比较好的方案了,
    @gkiwi 不是文档。
    谢谢大家
    akira
        11
    akira  
       2016-03-11 22:58:43 +08:00
    id ,字符串变量名,字符串中文,字符串英文

    数据库只是持久化 不要到用的时候才来加载
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5228 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 05:49 · PVG 13:49 · LAX 21:49 · JFK 00:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.