我的SQL数据库中有这样的问题:
CREATE TABLE IF NOT EXISTS `t_question` (
`id_question` int(10) NOT NULL AUTO_INCREMENT,
`heading_key` varchar(255) NOT NULL,
PRIMARY KEY (`id_question`)
) ENGINE=InnoDB;因为我希望我的问题是多语言的,所以我将它们的键链接到另一个表(t_lang_data),该表存储字符串以供多种用途(问题、文章等)。
我的t_lang_data具有折叠结构:
CREATE TABLE IF NOT EXISTS `t_lang_data` (
`id_lang_data` int(10) NOT NULL AUTO_INCREMENT,
`key` varchar(255) NOT NULL,
`lang_iso` int(10) NOT NULL,
`text` varchar(255) NOT NULL,
PRIMARY KEY (`id_lang_data`)
) ENGINE=InnoDB;例如,我可以问这个问题:
id_question =1;heading_key = heading_quest_1
这些lang_data条目:
id_lang_data =1;key = heading_quest_1;lang_iso = en_UK;text =“标题1”id_lang_data =2;key = heading_quest_1;lang_iso = fr;text = "Titre de la问询1“
我需要为原则2绘制这些关系图,但我不知道该怎么做。我尝试过一个多对一和一个一对多方法,但是它不起作用。
有人想办法吗?谢谢
编辑:我意识到这比我想象的还要困难。实际上,我的t_lang_data表可以存储许多表的字符串,如t_questions、t_articles等。但在映射中,我们似乎只能将两个表映射到一起。
那我该怎么做?
发布于 2011-05-02 14:31:34
数据库确实是最常见的翻译问题之一。
如果您想要有一个高效的翻译行为而不需要重新发明轮子,那么您应该使用这个库:https://github.com/l3pp4rd/DoctrineExtensions。
这是doctrine2团队推荐的,对我来说非常好。专门用于翻译行为的文档如下:https://github.com/l3pp4rd/DoctrineExtensions。
另外,如果您使用的是symfony2,专用包在这里: http:// github.com/stof/DoctrineExtensionsBundle
此外,通过使用一个表来翻译引用原始类型和id的字符串存储,翻译行为就像您的工作方式一样。
https://stackoverflow.com/questions/5858206
复制相似问题