适合此任务的数据库设计

时间:2012-07-10 10:44:22

标签: mysql database database-design

好的,所以我将至少有2张桌子,可能是3张。

数据如下:

首先是搜索字词列表。这些搜索术语与程序中的任何其他内容无关(仅涉及获取输出,根本不涉及对此数据的操作),因此我计划将它们分别存储在自己的表中。

然后事情就变得棘手了。我有一个单词列表,每个单词可以分为多个类别。因此,例如,如果你有"悲伤",它可能在"焦虑"和#34;悲剧",就像"快乐"可能是在快乐之下#34;和"履行"。

设置一个我有三列的表是更好的:一个UID,一个单词和一个类别,还是设置两个表更好:两个都有UID,一个带有UID单词,一个与类别,并将它们设置为外键?

最终的作用是在给定的时间段内产生给定类别中的单词数量。

如果能帮助任何人,我将使用MySQL和Python(MySQLdb)。

2 个答案:

答案 0 :(得分:0)

如果没有很多细节,我会按照以下方式进行设置:

Word Table
id int PK
word varchar(20)

Category Table
id int PK
category varchar(20)

Word_Category Table
wordId int PK
categoryId int PK

第三个是单词和类别之间的连接表。该表将包含单词和类别表的外键约束。

答案 1 :(得分:0)

忽略您的“搜索字词”表(因为它似乎与该问题没有任何关联),我可能会这样做

words (w_id int, w_word varchar(50))

categories (c_id int, c_category)

wordcategories (wc_wordid int, wc_catid int)

将wordcategories中的ID的外键约束添加到单词和类别表