誰かがチェックボックス検索を行うときに複数の変数を1つの列に入れることは可能ですか?1つの列に複数の変数がありますか?
音楽に合わせて踊るために: 1.Oldies 2.Reggae 3.pop 4.house
とのテーブルは、「イベント」の名であります言わせてのは、チェックボックスは、このようにしているとしましょう列の1つは音楽です。 誰かがチェックボックス1,3または4を選択してこの行を返すと検索される1,3,4と言うように、カラムにどういうふうに入っていますか?
感謝:)
誰かがチェックボックス検索を行うときに複数の変数を1つの列に入れることは可能ですか?1つの列に複数の変数がありますか?
音楽に合わせて踊るために: 1.Oldies 2.Reggae 3.pop 4.house
とのテーブルは、「イベント」の名であります言わせてのは、チェックボックスは、このようにしているとしましょう列の1つは音楽です。 誰かがチェックボックス1,3または4を選択してこの行を返すと検索される1,3,4と言うように、カラムにどういうふうに入っていますか?
感謝:)
あなたが何を記述するかは、多対多の関係です。これは、多くのイベントが存在する可能性があることを意味し、各イベントにはいくつかの音楽スタイルが適用されます。一方、多くのイベントで音楽のスタイルを表現することができます。
一般に、 'イベント'と '音楽'のヘルパーテーブルと2つの異なるテーブルを使用して、これらの種類の関係を表現できます。 'イベント'には主キーIDがあり、 '音楽' 「音楽」または「イベント」の列を参照してください。代わりに、それらの間にリンクを設定するには、 'event_id'と 'music_id'という列の3つ目のテーブル 'Event_Music'を作成します。この例を考えてみましょう:
Table Event
id | name
1 | Event A
2 | Event B
3 | Event C
Table Music
id | style
1 | oldies
2 | reggae
3 | pop
4 | house
Table Event_Music
event_id | music_id
1 | 1
1 | 3
3 | 4
これはオールディーズでEvent Aこととポップするが起こっているとのみハウスミュージックでイベントCがあるように起こっていることを示しています。
これは分かりやすいですが、テーブルを返すと、これにより各イベントごとに複数の行が表示されますか? – pufAmuf
はい、イベントに複数の音楽スタイルがある場合、Event_Musicには複数の行があります。あなたのユーザーが1と3をチェックして、「古い」と「ポップ」というイベントがあるとします。次に、対応するイベントを取得するには、同じevent_idを持つEvent_Musicのエントリを照会します。このevent_idにmusic_id = 1のエントリとmusic_id = 3のエントリの両方があります。 – emboss
Hmmm、それは理想的ではないようですが、1つの行だけが返されるようになります。各音楽スタイルの列はどうですか? – pufAmuf
あなたは多くを検討する必要があります:多くのデータベース構造。いくつかの研究を行い、いくつかのテーブルを設定し、それを撃つ。これはデータベースの基本的な形式の1つです。
別のテーブルに音楽の種類を入れ、イベントから音楽の種類の表を指す列と外部キーを作成します。次に、音楽テーブルのPKをイベントテーブルに保存します。
を探していると思います。
別のテーブルでこれを行うと[Events_genres]のように呼び出され、[Events]テーブルのプライマリキーにはforeign key、[genres]テーブルのプライマリキーには別の外部キーがあります。例えば
:
[events_genres]
events_id genre_id
1 1
1 2
1 3
2 3
events_id
は、テーブル内のイベントのID [イベント]とgenre_id
は、ジャンルのIDは、[ジャンル]で(オールディーズ、レゲエ、PHP ...)であります表。
これは機能する可能性がありますが、悪い考えです。これらのデータを正規化する必要があります。 1つのEventIDと1つのミュージック列を持つ余分なテーブルmusicForEventを作成し、イベントに3つの音楽がある場合は3行を追加します。 – Konerak
正規化はここでの解決策ではありません。あなたが望むのは、リレーショナル・モデルよりも表現力豊かなものなので、NoSQLの使用を提案することもできます。 – Halcyon
@Frits NoSQL、noice! –