ユーザーがアイテムを作成するためのHTMLフォームがあります。アイテムは、通常のSQLクエリを使用して検索されます。これで、HTMLフォームの各項目にタグフィールドが提供されます。アイテムを作成している間、ユーザーはアイテムのタグ名を入力し、アイテムはタグ名とともに作成されます。ユーザーはこのタグ名を使用してアイテムを検索します。タグによる検索を許可しますか?
これを実装する最善の方法は何ですか?すべてのItemテーブルにタグ列を追加するのは良い方法ですか?他の可能なオプションは何ですか?
ユーザーがアイテムを作成するためのHTMLフォームがあります。アイテムは、通常のSQLクエリを使用して検索されます。これで、HTMLフォームの各項目にタグフィールドが提供されます。アイテムを作成している間、ユーザーはアイテムのタグ名を入力し、アイテムはタグ名とともに作成されます。ユーザーはこのタグ名を使用してアイテムを検索します。タグによる検索を許可しますか?
これを実装する最善の方法は何ですか?すべてのItemテーブルにタグ列を追加するのは良い方法ですか?他の可能なオプションは何ですか?
データベースサーバーへのラウンドトリップを最小限に抑えたいと思っています。タグは関心のある項目の1つの属性である可能性が高く、多対多の関係です。これはよく踏まれた道であり、より多くの情報hereを見つけることができます。
あなたが複数のタグを追加することができるようにしたい場合は、最良の方法は、このようなテーブルを実装するために、次のようになります。
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