保存多语言数据的最佳数据库结构是什么? [复制]

2023-12-20

可能的重复:
多语言数据库的架构 https://stackoverflow.com/questions/316780/schema-for-a-multilanguage-database

这是一个例子:

[ products ]
id (INT)
name-en_us (VARCHAR)
name-es_es (VARCHAR)
name-pt_br (VARCHAR)
description-en_us (VARCHAR)
description-es_es (VARCHAR)
description-pt_br (VARCHAR)
price (DECIMAL)

问题:每一种新语言都需要修改表结构。

这是另一个例子:

[ products-en_us ]
id (INT)
name (VARCHAR)
description (VARCHAR)
price (DECIMAL)

[ products-es_es ]
id (INT)
name (VARCHAR)
description (VARCHAR)
price (DECIMAL)

问题:每种新语言都需要创建新表,并且每个表中的“价格”字段都是重复的。

这是另一个例子:

[ languages ]
id (INT)
name (VARCHAR)

[ products ]
id (INT)
price (DECIMAL)

[ translation ]
id (INT, PK)
model (VARCHAR) // product
field (VARCHAR) // name
language_id (INT, FK) 
text (VARCHAR)

问题: hard?


与方法3类似:

[languages]
id (int PK)
code (varchar)

[products]
id (int PK)
neutral_fields (mixed)

[products_t]
id (int FK)
language (int FK)
translated_fields (mixed)
PRIMARY KEY: id,language

因此,对于每个表,创建另一个表(在我的例子中带有“_t”后缀)来保存翻译后的字段。 当你SELECT * FROM products, 简单地... LEFT JOIN products_t ON products_t.id = products.id AND products_t.language = CURRENT_LANGUAGE.

没那么难,而且可以让你远离头痛。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保存多语言数据的最佳数据库结构是什么? [复制] 的相关文章

  • iPhone en_* 子语言本地化

    我想在我的 iphone 应用程序中将字符串本地化为 en GB 和其他 en 子语言 但 XCode 和 iphone 拒绝让这种情况发生 我已经为 en GB 和 en US 创建了 Localized strings 的本地化 我尝试
  • 防止重复数据输入mysql数据库

    我试图让我的电子邮件订阅服务拒绝数据库中已存在的电子邮件 这样用户就不会订阅同一封电子邮件两次 这就是我所拥有的 但它不起作用 有什么想法吗
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • 如何获取共同好友列表

    你好 我想知道如何才能找到共同的朋友 我目前在思考这个问题时遇到问题 我有一个名为 users 的表 它是这样的 id name 1 Kenny 2 Jack 3 Jimmy 4 Chris 5 Meg 6 Jake 7 Micheal 8
  • 如何在 Node.js 中使用 Winston 将日志存储到 mysql 数据库

    我正在使用 winston 为我的应用程序进行日志记录 我已经使用这个完成了文件传输 class LoggerHelper extends BaseHelper constructor cApp super cApp this props
  • mysql 使用什么样的哈希?

    我正在编写类似于 phpMyAdmin 的自己的代码 但我需要用户能够使用 mysql 数据库中的用户名和密码登录 我需要知道mysql数据库使用什么样的哈希来存储每个用户的密码 我检查了 dev mysql com 寻找答案 但除了以 开
  • 如何使用 PHP 通过 JSON 发送 HTML 元素?

    以下功能 try query this gt pdo gt prepare SELECT FROM bookings WHERE TourID AND dTourDate and Status NOT LIKE Cancelled quer
  • 重复键错误不会取消/回滚mysql事务

    当在 mysql innodb 事务中时 我希望重复的键错误会导致回滚 它没有 相反 它只是抛出一个错误并继续执行下一个命令 一旦到达 COMMIT 命令 事务将被提交 没有重复键导致命令 这是预期的行为吗 如果是这样 如何设置它以便在发生
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • oracle lag 函数与 group by

    我有一个查询忽略从前一个值增加的值 例如 采用下表 col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询 select col1 from select col1 lag
  • Mysql关于重复键更新+子查询

    使用这个问题的答案 需要 MySQL INSERT SELECT 查询具有数百万条记录的表 https stackoverflow com questions 662877 need mysql insert select query fo
  • 软删除最佳实践(PHP/MySQL)

    Problem 在处理产品和订单的 Web 应用程序中 我想维护前员工 用户 与他们处理的订单之间的信息和关系 我想维护过时产品和包含这些产品的订单之间的信息和关系 然而 我希望员工能够整理管理界面 例如删除前员工 过时的产品 过时的产品组
  • 如何在 MySQL 中启用严格 sql_mode?

    我怎样才能启用严格sql mode在 MySQL 中 我想从 SQL 中获取数据并在中处理相同的数据strict mode 我现在的sql mode is mysql gt SELECT sql mode sql mode NO ENGIN
  • 如何在 Laravel 视图中找到当前语言?

    我正在使用 Laravel Lang 类来本地化我的网络应用程序 我已将两种语言添加到语言数组中application config application php 这会将用于本地化的默认语言更改为 URI 第一部分指示的任何内容 例如 b
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐

  • 如何批量限制事件?

    如何批量限制事件 比方说 我想在用户输入时触发文件保存 但执行文件系统访问的频率不超过每 100 毫秒一次 块事件处理程序示例 on
  • 通过使用 mmap() 在进程之间共享内存

    我使用的是Linux 2 6 我有一个环境 其中两个进程通过消息传递模式的简单实现来模拟 使用共享内存 数据交换 我有一个客户端进程 从父进程 即服务器 分叉 它将结构 消息 写入创建的内存映射区域 在分叉之后 message m mmap
  • 枚举的扩展方法,而不是枚举的实例

    我对我的事物有一个枚举 如下所示 public enum Things OneThing AnotherThing 我想为这个枚举编写一个扩展方法 类似于普莱斯的回答在这里 https stackoverflow com questions
  • 使用 liquibase 更新表中的一行

    我希望有人可以验证这是否是正确的语法以及使用 liquibase 填充数据库的正确方法 我想要的只是更改表中一行的值 我这样做是这样的
  • 如何在 Xcode 中编写涵盖 Facebook 登录的 UI 测试?

    我想在 Xcode 中编写一个 UI 测试 涵盖登录FBDSKLoginKit https cocoapods org pods FBSDKLoginKit 然而 Facebook iOS SDK 使用SFSafariViewControl
  • Heroku 在构建过程中找不到 package.json,尽管我有它

    当我将节点应用程序推送到 heroku master 时 我收到此日志 remote Building source remote remote gt App not compatible with buildpack https codo
  • 复选框默认选中=“选中”不起作用?

    复选框默认选中不起作用 我尝试修复它 但我找不到错误在哪里 所以在页面加载时检查 在页面加载后未检查 我试过了 div class onoffswitch style margin 0 auto div
  • Linux系统如何获取内存信息?

    如何在Linux系统上从C 代码中获取总内存 已用内存 可用内存 运行你的程序通过valgrind 对于一个名为foo 例如 valgrind foo 它将在跟踪内存使用情况的工具中运行程序 并在程序终止后打印出该信息 如果你没有valgr
  • Office.js API 是否支持多个范围选择?

    我需要通过 Office js API 同时选择多个范围 就像在 MSWord UI 中按住 CTRL 键并突出显示多个不连续的段落一样 如下面的屏幕截图所示 这种尝试是行不通的 它不是突出显示文档中单词 the 的前两个实例 而是突出显示
  • iOS7 和 Apple Watch

    我有一个最低 iOS 目标为 iOS7 的应用程序 我正在考虑为苹果手表添加一些额外的功能 如果应用程序在 iOS 8 上运行 是否有任何选项可以将 iOS7 维持为最低目标 并且仍然添加对 Apple Watch 的支持 类似于 iOS8
  • Heroku 部署 Gemfile.lock 问题

    我对整个部署的事情还很陌生 当我第一次创建应用程序时 我已经部署过一次它 然后一切似乎都工作正常 我现在对我的应用程序进行了一些更改 我想部署它们并确保它们在生产环境中工作 我添加并提交了最后的更改 并将更改合并到我的主分支中 然后我跑了g
  • Android SDK 需要 Android Developer Toolkit 版本 17.0.0 或更高版本

    当我尝试将我的项目从 eclipse 合并到 netbeans 时 我遇到了这个奇怪的问题 现在 当尝试重新运行 eclipse 时 我收到此错误 Android SDK 需要 Android 开发者工具包版本 17 0 0 或 多于 我尝
  • FastAPI 依赖项(yield):如何手动调用它们?

    FastAPI 使用 Depends 注入返回或产生的变量 例如 快速API SQL https fastapi tiangolo com tutorial sql databases h sqlalchemy main fastapi a
  • 如何在 Tomcat 上运行的 servlet 过滤器中使用 HttpServletRequest#getParts()?

    我想在我的 JSF 应用程序中上传一个文件 我正在使用一个Filter and HttpServletRequestWrapper访问上传 文件 public MultipartRequestWrapper HttpServletReque
  • 没有路由与 rspec 的匿名控制器匹配

    根据我的理解规格规格 http relishapp com rspec rspec rails v 2 1 dir controller specs anonymous controller 我希望下面的例子能够通过 describe Ap
  • 与 Java 相比,使用 Mono 的主要好处是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Oracle 中存储波形

    我正在设计一个新的实验室数据库 我想将所有测试的原始结果存储在一起 然而 结果可以是单个测量或原始波形 转发见页脚 下面哪种情况是理想的 以及为什么 或提供您自己的理想选择 TEST test id other TEST fields 选项
  • PHP中如何获取对象的受保护属性

    我有一个对象具有一些我想要获取和设置的受保护属性 该物体看起来像 Fields Form Element Location Object helper gt formText allowEmpty protected gt 1 autoIn
  • TypeScript 中扩展接口和相交接口之间的区别?

    假设定义了以下类型 interface Shape color string 现在 考虑以下方法来向此类型添加其他属性 扩大 interface Square extends Shape sideLength number 路口 type
  • 保存多语言数据的最佳数据库结构是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 多语言数据库的架构 https stackoverflow com questions 316780 schema for a multilanguage database 这是一个例子 produc