【发布时间】:2015-04-14 00:13:48
【问题描述】:
所以, 我当前的问题是从 php/pdo/mysql 创建一个语言文件。有多个结构相同的语言表,但应用程序每次运行仅使用 2 个 - 一种可能不完整的用户选择语言和一种完整的后备语言。现在我们假设英语表是完整的,但任何翻译表都可能不完整,所以我们希望从英语表中返回任何丢失的翻译。
所以,假设表格是 lang_EN 和 lang_DE,列有 section、type、label、content
lang_EN:
section:'admin', type:'button', label:'hello', content:'Hello World'
section:'admin', type:'button', label:'goodbye', content:'Goodbye Cruel World'
lang_DE:
section:'admin', type:'button', label:'hello', content:'Hallo Welt'
表的主键是(部分、类型、标签)的组合。不能有其他索引 - 这是由于语言表的填充方式和使用重复键更新查询插入更新的方式。
由于服务器约束限制,它必须在单个查询中完成。我一直在想唯一可以做到的方法是通过沿线的联合
从语言_EN中选择内容 WHERE 部分 = '管理员' AND type = '按钮'
联合不同
从语言_DE 中选择内容 WHERE 部分 = '管理员' AND type = '按钮'
预期结果是: 你好世界 再见残酷的世界
我知道可以通过在所有表中添加匹配的索引键轻松创建查询,但是由于语言变化的潜在差异和不可能的更新方式,所以我现在很难过。
任何指针将不胜感激。
【问题讨论】:
标签: php mysql pdo union composite-primary-key