sql - 当与每条信息关联的标签数量可变时,在关系数据库中存储标签的好方法

标签 sql database tags relational varying

我想在 SQL 关系数据库中存储可以用可变数量的标签标记的句子。所以,我可能会有这样的句子

'As the sun sets slowly in the west, we bid you a fine farewell.'

用以下标签标记:

'farewell', 'goodbye', 'amiable'

一个句子的标签数量可以变化。在此处给出的示例中,有三个标签。

在关系数据库中组织此类信息的明智方法是什么?什么表等是合理的?

谢谢!

最佳答案

你有一个多对多的关系。制作三个表:sentencetagsentence_tagsentencetag 表各有一个主键 id 字段,sentence_tag 有一个 sentence_id 字段和一个 tag_id 字段。要查找带有 id = $sID 的句子的标签,

SELECT tag_name FROM tags WHERE id IN (SELECT tag_id FROM sentence_tag WHERE sentence_id = $sID);

关于sql - 当与每条信息关联的标签数量可变时,在关系数据库中存储标签的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17619698/

相关文章:

sql - 选择只有 1 个 bool 列为 true 的行

sql - sql server 中的 NOT 与 <> 运算符

Java 替换字符串中的所有非 HTML 标签

git - 在git中标记多个分支?

mysql - 如何使用 MySql 销售表构建数据库

javascript - 简单的 javascript if 和 else。如果 url 返回,否则滚动到 anchor

mysql - 获取过去两个月的记录,不包括今天的记录列表

mysql - 从表中选择结果以匹配 mysql 中的 2 行

SQL:有关 LEFT OUTER JOIN 的帮助

python - 在python中寻找一种将项目从一个大文件映射到另一个大文件的有效且快速的方法