ユーザーが入力できるフォームがあり、MySQL データベースでユーザーが選択したエントリを検索したいと考えています。たとえば、ユーザーがキーワードを入力し、オプション 2 と 3 をチェックした場合、キーワード AND オプション 2 AND 3 をデータベースで検索したいと思います。
ただし、データベースの設定方法がわかりません。オプションごとにテーブルに追加の列が必要ですか、またはテーブル内に配列を格納する方法はありますか? 私が思いついたもう 1 つの手法は、オプション用に別のテーブルを用意することでした。
以前にこれが行われたのを見たことがありますが、適切な実行についてはわかりません。誰かがこれを行う適切な方法を知っていれば、それは素晴らしいことです。
編集: これは場所 (たとえば、楽器店) のデータベースであり、オプションは販売されているさまざまな楽器です。ユーザーがフォームに入力すると、名前に「キーワード」文字列が含まれていて、ユーザーが選択した楽器を販売している店舗のリストを返したいと考えています。
適切なクエリを実行するためにデータベースをセットアップする方法がわかりません。各オプションをブール値を持つ個別の列として持つべきですか、それともブール値の配列を持つ列を持つことができますか?
注: 'Instruments' は多くのオプションの 1 つにすぎません。他の基準でフィルタリングできるようにしたい
HTML :
<form>
<input type="text" name ="Keyword" value="keyword"/><br/>
Option 1<input type="checkbox" name="Option 1" value="option1"/><br/>
Option 2<input type="checkbox" name="Option 2" value="option2"/><br/>
Option 3<input type="checkbox" name="Option 3" value="option3"/><br/>
Option 4<input type="checkbox" name="Option 4" value="option4"/><br/>
<button type="submit">Submit</button>
</form>
提案された DB 構造:
id | store_name | guitar | piano | saxophone | cello |
1 mike\'s music true false false true
また:
id | store_name | instruments |
1 mike\'s music Array[2]