关于数据库内数据需要国际化的方案

1. 运行环境

1). 当前使用的 ThinkPHP 版本?

ThinkPHP 5.1

2). 当前使用的 php/php-fpm 版本?

PHP 版本:PHP 5.6.9

php-fpm 版本:

3). 当前系统

CENTOS 7.6

4). 业务环境

比如说数据库内有如下数据

关于数据库内数据需要国际化的方案

需要将name字段按照客户端header传来的语种 返回对应的版本,这种需求,除了建立多种语言字段,还有啥好方案吗 ?

5). 相关软件版本

2. 问题描述?

3. 您期望得到的结果?

4. 您实际得到的结果?

@李山河
你看我吊吗啊
最佳答案

数据库国际化可以在表中添加一个 language 字段,用于区分语种。查表时,根据语种获取对应的值,再缓存起来即可。 数据表示例:

id language name
1 zh 阅读一本书
2 cn Read a book
1周前 评论
你看我吊吗啊 (楼主) 1周前
caijunduo (作者) 1周前
讨论数量: 9

因为我们的业务里面这部分数据并不是很重要所以通过翻译接口在首次获取的时候走接口取结果,然后保存到缓存中,后续直接读取缓存的数据。

1周前 评论

数据库国际化的话,可以添加一个language字段做区分,例如:

id language name
1 zh 阅读一本书
2 cn Read a book

获取数据时可以将对应语种数据缓存起来(至于是缓存该语种的全部数据还是单个数据,则看数据量),后台新增时清除对应语种数据缓存即可。

1周前 评论

数据库国际化可以在表中添加一个 language 字段,用于区分语种。查表时,根据语种获取对应的值,再缓存起来即可。 数据表示例:

id language name
1 zh 阅读一本书
2 cn Read a book
1周前 评论
你看我吊吗啊 (楼主) 1周前
caijunduo (作者) 1周前
你看我吊吗啊

file

避免提到敏感词 哈哈哈哈哈

1周前 评论
tomcath 1周前
你看我吊吗啊 (作者) (楼主) 1周前
你看我吊吗啊 (作者) (楼主) 1周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!