我正在创建一个在线词典,为此我必须使用三种不同的词典:日常用语,化学用语,计算机用语。我有树选项:
1)创建三个不同的表,每个字典一个表
2)创建一个包含额外列的表,即:

id    term    dic_1_definition    dic_2_definition    dic_3_definition
----------------------------------------------------------------------
1     term1   definition
----------------------------------------------------------------------
2     term2                       definition
----------------------------------------------------------------------
3     term3                                           definition
----------------------------------------------------------------------
4     term4                       definition
----------------------------------------------------------------------
5     term5   definition                              definition
----------------------------------------------------------------------
etc.

3)创建一个带有额外“tag”列的表,并根据字典标记我的所有术语,即:
id    term     definition    tag
------------------------------------
1     term1    definition    dic_1
2     term2    definition    dic_2
3     term3    definition    dic_3
4     term4    definition    dic_2
5     term1    definition    dic_2
etc.

一个术语可以与一个或多个词典相关,但有不同的定义,例如,日常使用的术语可以与IT领域中的同一术语不同。这就是为什么term1(在我的上一个表中)可以被分配两个标记-dic_1(id 1)和dic_2(id 5)。
将来我会增加更多的词典,所以可能会有三本以上的词典。我想如果我使用选项2(带额外的列),我将在将来得到一个表和许多列。我不知道这对表演有没有坏处。
在我的情况下,哪种方法是最好的?哪个更快?为什么?我们非常感谢您的建议和其他选择。
谢谢您。

最佳答案

我想你应该有一个字典类型的查找表
字典类型(DTId,DTName)
给你换一张桌子
术语(TermID,TermName)
那么你的定义
定义(definitionid,TermID,Definition,DTId)
这应该管用。

关于mysql - MySQL数据库结构:更多列还是更多行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1819692/

10-13 07:04