データベースに 3 つのテーブルがあり、
posts列post_id、post_title、およびpost_texttags列tag_idとtag_textpost_tag列post_idとtag_id
新しい投稿を作成するためのストアド プロシージャを作成したいと考えています。この投稿には、任意の数のタグを付けることができます。タグがまだ存在しない場合は、tagsテーブルに追加する必要があります。
今私の問題は、タグをコンマ区切りのリストとして取得していることです(例:「tag1、tag2、tag3」)。これらの各値からテーブルの 1 つの行を作成するための最良の方法は何ですか。
これまでの私のアイデアは次のとおりです。
- 投稿の作成を複数のストアド プロシージャに分割し、タグごとに 1 つ呼び出します。
- DB の文字列に対してある種の爆発関数を使用し、ループを使用して結果のすべてのタグを挿入します (これが可能かどうかさえわかりません)。
- ストアド プロシージャを削除し、ステートメント全体を文字列としてまとめます (それはしたくありません)。
- MySQL が可変パラメーター リストを受け入れるようにする方法を見つける。
これを機能させるための他の/より良い方法はありますか、またはこの問題への最良のアプローチは何ですか?