我不确定在文本字段中构建使用主题标签的 MySQL 数据库的最佳方法是什么,但我想这就像在表格上使用插入/更新触发器,文本字段将解析并添加将任何散列词添加到另一个表中,仅当它不在其中时才将其添加到散列表中。这是一个好方法吗?如果是这样,这样的触发器会是什么样子?
如果有另一种方法来构建 MySQL 数据库以利用主题标签,我愿意接受建议。
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')