数据库设计多语言方案

方案1

字段多语言
例:

create table (
  name_cn,
  name_en,
  name_jp
)

方案2
不同语言的数据存放在同一张表,不同行,通过lang来区分
例:

create table (
  name,
  lang
)

查询时可以采用类似于数据权限/saas的技术手段自动区分当前语言版本的数据

方案3

方案2的升级版。
方案2不能标识同个实体的不同语言版本。 所以,增加字段 ent_id, 来表示同一实体。
这样就可以在搜索时,清晰列出该实体(资源)有哪些语言版本,也可以很方便的为指定实体添加新的语言版本。
例:

create table (
  name,
  lang,
  ent_id
)

ent_id可以采用uuid, 或者mysql的唯一id生成方法

你可能感兴趣的:(数据库设计多语言方案)