PHP 与MySQL - 处理不同数据库语言内容的最佳方式
问题如下:处理不同数据库语言内容的最佳方法是什么?假设您有一个购物车,其产品可能有多种语言,那么构建数据库方案的最佳方法是什么?
干杯!
The question is as follows : what's the best way to handle different database language contents? Suppose you have a shopping cart whose products may have several languages, what would be the best approach to build the db scheme?
Cheers!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会在表中存储一个唯一的翻译密钥,然后使用另一个表或翻译文件,以便您可以从该密钥引用翻译。
表
产品
:表
翻译
:I would store a unique translation key in the table, and then either have another table or perhaps translation files so that you can reference the translation from the key.
table
product
:table
translation
:将当前用户的语言作为用户对象的属性(或用于用户跟踪的任何模式)。当您在数据库中查询字符串时,请添加一个条件来提取当前用户的语言(如果可用)。
在此示例中,我将 language_id 放入
$_SESSION
中;我通常不会以这种方式进行用户跟踪,但我相信这个概念已得到说明。在您的数据库中,每个产品的每种语言都有多个条目,其中 0 是网站的默认值(大概是英语)。查询将获取特定于语言的订单项,如果没有可用的特定于语言的项目,则返回到网站默认值。我对网站周围的一般字符串使用相同的概念 - 我有一个名为“content_strings”的数据库表,其中包含字段 id、text 和 language_id。
Have the language of the current user as a property of your user object (or whatever pattern you use for user tracking). When you query the DB for strings, add a conditional to pull the language of the current user if it is available.
In this example, I put the language_id in
$_SESSION
; I usually would not do user tracking in this fashion but I believe the concept is illustrated. In your database, each product would have multiple entries for each language with 0 being the default of the site (presumably English). The query will grab the language-specific line item or fall back to the site default if there isn't a language-specific item available.I use this same concept for general strings around the site - I have a database table called "content_strings" with the fields id, text, and language_id.