Chi*_*ote 5 database internationalization node.js sequelize.js
我在管理数据库中的 i18n 时遇到了一些麻烦
\n\n目前我的应用程序上只有两种语言可用,但为了可扩展,我想以“最佳”方式做到这一点。
\n\n我可以复制所有字段description_fr, description_en,但我对此一点也不舒服。我现在所做的是一个外部表,称之为外部表content,它的架构是这样的:
id_ref => entity referenced id (2)\ntype => table name (university)\nfield => field of the specific table (description)\nlang => which lang (fr, en, es\xe2\x80\xa6)\ncontent => and finally the appropriate content. \nRun Code Online (Sandbox Code Playgroud)\n\n我认为精确性很重要,我使用sequelizeJS 作为 ORM。所以我可以使用一个有用的钩子,如 afterFind、afterCreate 和 afterUpdate。因此,每次我想查找一个资源时,找到它后,我的钩子都会检索该资源的所有内容,并用商品值明确设置我的对象。它有效,但我不喜欢这个。
\n\n但我对此有一些麻烦:
\n\n它大大增加了我对数据库的请求数量:例如,如果我选择 50 行,我必须再执行 50 个请求..,而且只是针对特定模型。如果我有嵌套模型,它是指数\xe2\x80\xa6
那么,通过内容来获取数据就变得很复杂。查找具有特定名称的大学的示例很复杂。
而且更新等工作量很大......
所以我想知道,将数据直接保存为 JSON 是否是一个好主意。就像是
\n\n{\n fr : { \'name\':\'Ma super universit\xc3\xa9\' },\n en : { \'name\':\'My kick ass university\' }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n并继续使用 Sequelize Hooks 构建正确的数据并将其插入到我的对象中。
\n\n你怎么认为 ?\n你如何处理这个?
\n\n编辑
\n\n我使用mysql数据库
涉及约20个领域(跨模型)
如果没有设置内容,我必须使用我的 default_lang 设置默认值(例如,如果没有设置内容,法语中的 event.description 将与英语相同)
| 归档时间: |
|
| 查看次数: |
1834 次 |
| 最近记录: |