Sql存储单词及其翻译及其类别

时间:2018-01-30 23:44:26

标签: sql-server database-design

我构建了一个数据库(sql-server)。 我有一张桌子"字样" (wordID的,一句话,翻译) 每个单词必须与至少一个类别相关联。 我有一个额外的表"类别" (的categoryId,类别名) 将每个单词与它所属的所有类别相关联的最佳方法是什么?

一个选项: 附加表" wordsCategories" (的wordID,的categoryId)

第二个选项: 在单词表中添加colomn 将存储该词所属的所有类别ID,类别ID将以逗号分隔。 表"单词" (wordID的,词,翻译,类别) 插入单词(wordId,单词,翻译,类别)值(7,"单词"," travail"," 9,12,23")

我愿意听到一个更好的选择。

2 个答案:

答案 0 :(得分:0)

绝对不要存储逗号列表!创建一个链接字/类别ID的新表。此外,请确保两列都有唯一约束,以保持数据的良好性和安全性。干净。

(顺便说一句,我认为你会发现这个问题比你想象的更复杂,因为很多单词都有相同的拼写/不同的含义等。)

答案 1 :(得分:0)

我的数据库设计应该是

--category table
categoryid
categoryname

--language table
langid
languagename

--words table
wordid
word
langid


--translation table
id
categoryid
wordid
transwordid --- from words table but the translation of the word