我想要这样的数据库设计。它用于存储一种语言的单词列表,即英语,以及它们的另一种语言的翻译,即西类牙语。所以最初我有一张英文表(id,word,isTranslated)。
1 i false
2 love false
3 you false
4 hate false
5 him false
...
“isTranslated”是一个 bool 值,表示这个词是否有翻译。
在Web前端,每次从表格English中在一个html页面中显示一些单词。例如:
2 love
3 you
4 hate
然后用户单击每个单词并以 Web 表单提交翻译后的单词,这些单词将存储到西类牙语表中。与英语表不同,西类牙语表以零记录开始。它通过 html 表单逐渐填充。
我认为西类牙语表格应该具有与英语相同的结构;
西类牙语 (id,word,isTranslated)
这样我就可以有另一个关联表 EnglishSpanish(English_ID, Spanish_ID),它将翻译后的对存储在两个表中。这是一个多对多的关系。该表的目的是方便检索语言中单词的对应词。
这有意义吗?我遇到的问题是,随着用户随着时间的推移提交翻译,如何逐渐填充其他两个表西类牙语和英语西类牙语?第一个表格英语是预加载的。
感谢您的见解和帮助。
最佳答案
我曾经设计过一个字典(一对一)关系,在现实世界中,你只会为每个英文短语选择一个最佳翻译:
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
...
Above Designed 也适用于一对多关系
如果你想要它作为多对多关系,你需要 2 个表:
id, term, lang
1 xyz en
2 ...
id1, id2
1 2
1 3
2 5
...
关于mysql - 如何设计这种多对多的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38822499/