我不确定在文本字段中构建利用主题标签的MySQL数据库的最佳方法是什么,但我想象它会像在表上插入/更新触发器一样,文本字段会解析out并将任何散列的单词添加到另一个表中,只有当它不在其中时才将其添加到散列表中。这是一个很好的方法吗?如果是这样,这样的触发器会是什么样的?
如果有另一种方法来构建MySQL数据库以利用主题标签,我愿意接受建议。
答案 0 :(得分:1)
您可以在INSERT
和UPDATE
上运行触发器。
您可以将字符串拆分为单词。
您可以自动INSERT
个新标签(假设name
上的唯一键):
INSERT IGNORE
INTO hashtags(name)
VALUES ('word1'), ('word2'), ('word3'), ('word4');
您可以获取该单词列表并查找所有(旧的和新的)主题标签:
SELECT ht.id
FROM hashtags ht
WHERE ht.name in ('word1', 'word2', 'word3', 'word4')
然后您可以在行和标签之间插入映射:
INSERT
INTO hashtag_map (document_id, hashtag_id)
SELECT NEW.document_id, ht.hashtag_id
FROM hashtag ht
WHERE ht.name in ('word1', 'word2', 'word3', 'word4')