0

我在为我正在设计的标签驱动软件的架构提出一个小问题。

我想要做的是将纯文本存储在数据库中,这对于所有者和其他实体来说是很喜欢的。纯文本充满了标签,就像 Twitter 的主题标签一样,应该是可搜索/可索引的。这可以在应用程序端完成,因此我将拥有大量需要为商业智能处理的小块数据。

没有人会准备好纯文本,它只是关于不需要一致并且可以异步运行的分析。

我知道 Twitter 使用多个数据库:用于推文的 Gizzard 和 Cassandra 以及用于关系的 FlockDb。

我不想使用混合来完成关系,我也不想建立下一个社交网络。我需要做的是分析与其他实体相关的所有标签。

如何解决哈希标签问题,或者如何处理文本以使其工作?

我真的在寻找一个不错的解决方案,而不仅仅是任何解决方案。我真的知道如何为 SQL 创建模式。

感谢您帮助我度过了那个数据库丛林。

4

1 回答 1

1

这是在数据库中表示标签的一种相当标准的方法:

在此处输入图像描述

应用程序解析 RAW_TEXT,为每个识别的标签检查它是否已经在 TAG 中,如果不是,则将其插入那里。然后它只是通过插入 TAG_POST 将帖子与从中提取的标签连接起来。

请注意 TAG_POST 的复合主键中的字段顺序 - 将 TAG_ID 置于前沿有助于有效搜索给定标签的帖子。如果您想获取给定帖子的标签,请翻转顺序。如果两者都需要,请以与 PK 相反的顺序创建复合索引。

如果您的 DBMS 支持集群,那么 TAG_POST 将是一个不错的选择。


如果您的 DBMS 支持前沿索引压缩 (Oracle),请考虑简单地执行以下操作:

在此处输入图像描述

压缩索引将有效地存储相同 TAG_NAME 的许多重复,因此无需为了节省空间而将其“外包”到另一个表。

于 2013-04-10T11:11:42.653 回答