0

という列を持つ画像テーブルがありますtags。典型的なエントリは次のようになります。

id    link    tags
-------------------
1     [link]  funny,not-cool,work

ユーザーがタグを入力して画像を検索できる検索ページがあります。コンマで区切られた任意の数のタグを入力できます

Search: funny, fall, fail

質問は、これらのタグをデータベースで検索する最良の方法は何ですか? シンプルでしょうLIKE?各タグを別のテーブルに追加し、コンマで区切らない方が理想的だった可能性があることはわかっているので、タグの動作方法を変更する必要がある場合は変更します。

4

1 に答える 1

0

ここに複数のテーブルを用意したほうがよいでしょう。最初のテーブルは and と呼ばimagesidますlink。2 番目のテーブルはtags、各行が column や などの 1 つの特定のタグidで呼び出されますtagimagetags3 番目のテーブルは、列idimage、およびのようなものと呼ばれる結合テーブルになりtagます。のimage列はimagetagsへの外部キーにimagesなり、tag列は への外部キーになりtagsます。

検索例を使用すると、SQLは次のようになります。

SELECT images.link 
FROM images 
JOIN imagetags on images.id = imagetags.image
JOIN tags on tags.id = imagetags.tag
WHERE tags.tag in ('funny','fall','fail')
于 2013-05-13T04:16:28.557 に答える