2009-06-22 4 views
0

ユーザーがアイテムを作成するためのHTMLフォームがあります。アイテムは、通常のSQLクエリを使用して検索されます。これで、HTMLフォームの各項目にタグフィールドが提供されます。アイテムを作成している間、ユーザーはアイテムのタグ名を入力し、アイテムはタグ名とともに作成されます。ユーザーはこのタグ名を使用してアイテムを検索します。タグによる検索を許可しますか?

これを実装する最善の方法は何ですか?すべてのItemテーブルにタグ列を追加するのは良い方法ですか?他の可能なオプションは何ですか?

答えて

0

データベースサーバーへのラウンドトリップを最小限に抑えたいと思っています。タグは関心のある項目の1つの属性である可能性が高く、多対多の関係です。これはよく踏まれた道であり、より多くの情報hereを見つけることができます。

0

あなたが複数のタグを追加することができるようにしたい場合は、最良の方法は、このようなテーブルを実装するために、次のようになります。

item_tag 
     item_id - Integer 
     tag_name - Varchar 

または2つのテーブルを:

item_tag 
     item_id 
     tag_id 
tags 
     id 
     name 

post_tagの表を参照してくださいどのタグがどのアイテムに関連付けられているかのリストを格納する。あなたがタグでアイテムを検索したい場合は、3つのテーブルを使用することを提案しているタグシステムを実装するための最良の方法を議論

SELECT * FROM `items` LEFT JOIN `item_tag` ON `items`.`id` = `item_tag`.`item_id` WHERE `tag_name` = 'value' 

Here is a postを行うことができます。例えば、items,tags,items_tags

関連する問題