MySQL数据库组织:存储单词列表

时间:2013-12-30 01:46:42

标签: mysql database-design

我目前正在处理的一个项目涉及解析大量文本,取出“停用词”,然后对该站点的每个用户对文章执行某些操作。最后,我需要一个文章的唯一单词列表,删除停止的单词,以及该单词使用次数的计数。例如:

computer: 6
artificial: 5
robot: 2

我想知道如何最好地将这种数据存储在MySQL数据库中。显而易见的答案是只存储一个简单的列表“计算机:6个人工:5个机器人:2”并且这种方法没有任何问题,只是感觉很难看。我想知道是否有更优雅的解决方案。

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以将其存储在一个表中,该表中包含单词列和计数列。可能的结构是:

create table WordCounts (
    word varchar(255) not null,
    articleid int not null,
    cnt int not null
);

您可能需要wordarticle上的索引。

答案 1 :(得分:0)

也许您可以尝试其他方法,例如MongoDB或其他方法。这种数据库(面向文档)很适合存储这类数据。但是,您将应用于该数据的处理类型使得一种方法比另一种方法更好。

但是,对于关系数据,您可以尝试3个表:文章,单词和一个加入这两个表。

文章将包含有关文章的信息,单词是一个表格,包含到目前为止找到的所有单词以及连接这两个单词的表格(article_id,word_id,count)

我认为这是使用关系数据库保存数据的好方法,因为“word”表将受到限制。但是,如果您需要明文中的单词,也许最好尝试@Gordon Linoff所避免的方式(保存连接)

但是,再次,您存储数据的方式与您处理数据的方式密切相关。