我的数据库中有 3 个表,
posts
与列post_id
,post_title
, 和post_text
tags
与列tag_id
和tag_text
post_tag
与列post_id
和tag_id
我想编写一个用于创建新帖子的存储过程。这篇文章可能有任意数量的标签。如果标签尚不存在,则应将其添加到tags
表中。
现在我的问题是,我将标签作为逗号分隔的列表(例如“tag1,tag2,tag3”)。用这些值中的每一个在表中创建一行的最佳方法是什么。
到目前为止,我的想法是:
- 将帖子创建拆分为多个存储过程,并为每个标签调用一个。
- 在数据库中的字符串上使用某种爆炸函数并使用循环插入每个结果标签(我什至不知道这是否可能)。
- 删除存储过程并将整个语句组合成一个字符串(我不想那样做)。
- 想办法让 MySQL 接受可变参数列表。
有没有其他/更好的方法来完成这项工作,或者解决这个问题的最佳方法是什么?