请告诉我,如果我在使用mysql设计这个数据库时犯了任何错误

e5njpo68  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(436)

我的基本要求是在语言表中有一些语言。然后我添加我的单词和它们在不同语言中的翻译。所以要存储这些数据,我希望我是对的,这种情况是一对多的关系。请看一下图片。

我使用的是正确的设计吗?或者比这更好?有什么建议吗?

jqjz2hbq

jqjz2hbq1#

可使用下表:
语言
id(键)
短文本
期限
语言id(键)
id(键)
文本
翻译
语言\u id1(键)
第1项(关键)
语言id2(键)
第2项(关键)

t9eec4r0

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

相关问题