如何在列可能随每一新行而更改的上下文中设计数据库表

  • 本文关键字:上下文 数据库 新行 database sqlite
  • 更新时间 :
  • 英文 :


让我们考虑以下任务:对于NLP任务,我正在数据库中收集新闻标题。我需要使用这些数据进行词频分析,所以我用以下方式标记标题并存储单词:

标题表:

titleID    word1    word2    word3    ....   
1          0        0        1   
2          1        1        0   
3          0        0        0   
...

每一列都是不同的单词,我根据它是否出现在标题中来标记它0或1。

当然,问题是每次我添加新标题时,可能会有一个单词是新的,因此我需要为这个单词添加一个新列。

在SQL世界中,这意味着在每次插入新行时都有潜在的迁移,这是站不住脚的。我可以使用nosql,但我仍然希望该表与数据库中的其他表有关系。

对于我的情况,有什么替代方案?在数据库中存储NLP数据的常见方法是什么?

对NLP方面不太确定,它显然在很大程度上取决于使用场景,但这方面的关系解决方案是;标题";以及";单词";。

更正式的:

A title has one or more words.
A word appears in zero or more titles. A word may appear more than once in a title, with an index signifying it's position in each case.

模式是:

Words
-----
Word_id (PK)
Word
Titles
------
Title_id (PK)
TItle
Word-Title
------------
Word_id. (PK, FK)
Title_id (PK, FK)
Index.   (PK)

这意味着,当你在标题中遇到新词时,你会在";单词";表,而不是追加一列。

最新更新