V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jimyan
V2EX  ›  程序员

你们的系统是如何保存多语言的

  •  
  •   jimyan ·
    sansanboy · 2017-07-19 17:59:19 +08:00 · 2491 次点击
    这是一个创建于 2482 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假如一个商品名词有中文和英文,在数据库中是 name_ch 和 name_en 類似這樣嗎?還是有其它好的處理方法,這樣處理的問題是擴展不方便,如果我要多加一個語言,則需要多加一個字段,想到的方案是格式化後保存到一個字段中。
    11 条回复    2017-07-20 07:21:36 +08:00
    jarlyyn
        1
    jarlyyn  
       2017-07-19 18:06:37 +08:00
    你是想说网站有不同语言版本?
    jimyan
        2
    jimyan  
    OP
       2017-07-19 18:11:31 +08:00
    @jarlyyn 如果是網站的語言還好,可以直接配置不同的語言文件,就是這種商品的處理。
    cxbig
        3
    cxbig  
       2017-07-19 18:27:23 +08:00
    看你们平台的复杂程度
    可以参考 E-A-V 数据结构(希望隔开不会踩雷)
    https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model
    QAPTEAWH
        4
    QAPTEAWH  
       2017-07-19 18:32:03 +08:00
    领导:小基啊,我这里有条小裙子你先穿着
    jarlyyn
        5
    jarlyyn  
       2017-07-19 18:40:11 +08:00
    @jimyan

    你这个字段是什么用呢?
    jimyan
        6
    jimyan  
    OP
       2017-07-19 18:40:47 +08:00
    @jarlyyn 根據用戶的區域顯示不同的描述
    littleylv
        7
    littleylv  
       2017-07-19 18:47:50 +08:00
    我一般是
    products(id, xxx, yyy)
    languages(id, code, name)
    products_i18ns(id, product_id, language_id, name, desc)
    jimyan
        8
    jimyan  
    OP
       2017-07-19 23:36:36 +08:00
    @cxbig 学习啦
    jimyan
        9
    jimyan  
    OP
       2017-07-19 23:36:45 +08:00
    @littleylv 我研究下
    cxbig
        10
    cxbig  
       2017-07-19 23:47:05 +08:00
    @jimyan
    如果你的项目需要的 语种有限,字段也不多,可以单开一个表存
    如 product_id, name_cn, name_en, description_cn, description_en,...

    不够用再上 E-A-V 或其他方案也不迟
    wenzhoou
        11
    wenzhoou  
       2017-07-20 07:21:36 +08:00 via Android
    Java 就没有这个问题了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   856 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:40 · PVG 06:40 · LAX 15:40 · JFK 18:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.