【发布时间】:2016-04-18 03:44:32
【问题描述】:
我有两张桌子。 新闻: id、主题、作者、出版商 语言环境: news_id、lang_id、名称 表格新闻与语言环境是一对多关系。
在我的网站上, 如果激活了新语言,那么我需要将激活的语言变量(从相应的新语言的默认语言值中获取值)添加到表区域设置 如果新语言被停用,那么我需要从表区域设置中删除激活的语言变量 这个过程对于新闻表中的所有条目都是一样的。
例如:-
表 - 新闻:
id 主题 作者 出版商
1 个样本 1 作者 1 出版商 1
2 样本 2 作者 2 发布者 2
表 - 语言环境:
news_id lang_id 名称
1 1 新闻1 - 德语
1 2 新闻1 - 英文
1 3 新闻1 - 法语
2 1 新闻2 - 德语
2 2 新闻2 - 英文
2 3 新闻2 - 法语
如果我激活“意大利”语言,我需要添加以下条目:
news_id => 1 lang_id => 4 name => news1 - 意大利语
news_id => 2 lang_id => 4 name => news2 - 意大利语
如果我停用“英语”语言,我需要删除以下条目:
news_id => 1 lang_id => 2 name => news1 - 英文
news_id => 2 lang_id => 2 名称 => news2 - 英文
我需要使用 MYSQL(单一查询)来完成这个过程。
【问题讨论】:
-
请修正您的格式。
-
您的
locale表似乎是关联表,但没有基础语言表?虽然您可以使用INSERT ... SELECT将新条目填充到这样的locale表中,但通常会包含MySQL 无法自动提供的翻译数据(特定于每个新闻/语言环境组合):因此这样任务通常作为外部(通常是手动)流程的一部分执行。此外,“停用”很少涉及删除底层记录(只是以某种方式标记它们),尽管级联删除外键约束可以实现这一点。
标签: mysql