我想要这样的数据库设计。它用于以一种语言(即英语)存储单词列表,并以另一种语言(即西班牙语)存储它们的翻译。因此,最初我有一张表格English(id,word,isTranslated)。
1 i false
2 love false
3 you false
4 hate false
5 him false
...
“ isTranslated”是一个布尔值,指示此单词是否已翻译。
在Web前端中,每次在英语表的html页面中显示许多单词。例如:
2 love
3 you
4 hate
然后,用户单击这些单词中的每一个,并以网络形式提交翻译后的单词,并将它们存储在西班牙语表中。与英语表不同,西班牙语表以零记录开头。它通过html表单逐渐填充。
我认为西班牙语表应具有与英语相同的结构;
西班牙语(id,word,isTranslate)
这样我就可以拥有另一个关联表EnglishSpanish(English_ID,Spanish_ID),该表将翻译对存储在两个表中。这是多对多的关系。该表的目的是为了方便检索语言中某个单词的对应部分。
这有意义吗?我遇到的麻烦是,随着用户随着时间的推移提交翻译,如何逐步填充其他两个表Spanish和EnglishSpanish?第一个表English已预加载。
感谢您的见解和帮助。
最佳答案
我曾经设计过一种字典(一对一)关系,就像在现实世界中一样,对于每个英语短语,您只会获得一种最佳翻译:
id, term, lang, english_id
1 I En 1
2 Love En 2
3 You En 3
4 我 Cn 1
5 爱 Cn 2
6 你 Cn 3
7 ichi De 1
...
上面设计的也适用于一对多关系
如果您想要多对多关系,则需要2个表:
id, term, lang
1 xyz en
2 ...
id1, id2
1 2
1 3
2 5
...
关于mysql - 如何设计这个多对多数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38822499/