我的基本要求是在语言表中有一些语言。然后我添加我的单词和它们在不同语言中的翻译。所以要存储这些数据,我希望我是对的,这种情况是一对多的关系。请看一下图片。我使用的是正确的设计吗?或者比这更好?有什么建议吗?
jqjz2hbq1#
可使用下表:语言id(键)短文本期限语言id(键)id(键)文本翻译语言\u id1(键)第1项(关键)语言id2(键)第2项(关键)
t9eec4r02#
这是我的建议。我通常在id前面加上表名,以便于阅读。显然,您可以使用您喜欢的命名标准。
Language - LanguageID - Description Term - TermID Translation - LanguageID - TermID - Text
至于翻译表的键,这取决于每种语言允许多少翻译。如果允许多个,则添加translationid。如果只想强制一个,请使用languageid和termid的串联键。了解如何正确创建复合主键-mysql我知道只有一个键的表看起来很奇怪,但是这种结构有很多优点。它将允许您在搜索时只查询一个字段,而不管您是从英语翻译还是翻译成英语。如果有一天,你需要在英语以外的语言之间进行翻译,你已经准备好了。根据同一个词的不同意思,你可以多次翻译它。下面是一个如何使用它的例子
Language 1 English 2 French 3 Spanish Term 1 Translation 1 1 Dog 1 1 Hound -- (if this is allowed, add a TranslationID) 2 1 Chien 3 1 Perro
2条答案
按热度按时间jqjz2hbq1#
可使用下表:
语言
id(键)
短文本
期限
语言id(键)
id(键)
文本
翻译
语言\u id1(键)
第1项(关键)
语言id2(键)
第2项(关键)
t9eec4r02#
这是我的建议。我通常在id前面加上表名,以便于阅读。显然,您可以使用您喜欢的命名标准。
至于翻译表的键,这取决于每种语言允许多少翻译。
如果允许多个,则添加translationid。
如果只想强制一个,请使用languageid和termid的串联键。了解如何正确创建复合主键-mysql
我知道只有一个键的表看起来很奇怪,但是这种结构有很多优点。
它将允许您在搜索时只查询一个字段,而不管您是从英语翻译还是翻译成英语。
如果有一天,你需要在英语以外的语言之间进行翻译,你已经准备好了。
根据同一个词的不同意思,你可以多次翻译它。
下面是一个如何使用它的例子