Open isayme opened 5 years ago
场景一: Trello 官方支持多个插件, 插件的名称描述信息都是英文, 为了降低母语非英语的用户入门难度, 当此类用户访问插件信息的时候最好展示其母语版本的标题描述. 问题一: 同一个字段需要存在多个不同语言的版本
场景二: 电影会有个上映时间信息, 不通国家地区的上映时间不同, 需要单独记录. 问题二: 同一个字段需要存在多个不同地区的版本
总结: 数据库如何设计以应对统一字段不同场景下的不同版本?
以 场景一 为例, 如何解决同一个字段需要存在多个不同语言的版本.
场景一
{ title_en: "", title_fr: "", title_de: "" }
{ title: "", title_translate_id: "" } // translation { _id: "", text_en: "", text_fr: "", text_de: "" }
xxx_translate_id
{ title: "", titles: [ { lang: "en", text: "", }, { lang: "fr", text: "", }, { lang: "de", text: "", } ] }
需要解决的问题
场景一: Trello 官方支持多个插件, 插件的名称描述信息都是英文, 为了降低母语非英语的用户入门难度, 当此类用户访问插件信息的时候最好展示其母语版本的标题描述. 问题一: 同一个字段需要存在多个不同语言的版本
场景二: 电影会有个上映时间信息, 不通国家地区的上映时间不同, 需要单独记录. 问题二: 同一个字段需要存在多个不同地区的版本
总结: 数据库如何设计以应对统一字段不同场景下的不同版本?
解决方式
方式一: 不同场景下分别增加一个字段
优点
缺点
方式二: 使用独立的表记录多语言信息
优点
缺点
xxx_translate_id
字段;(荐)方法三: Attribute Pattern
优点
缺点
参考资料