0

私は、ほとんどの場合、非常に基本的なフォームを持っています。例外は、2 つのフィールドがグループ化されており、ユーザーがグループ化されたフィールドに対して複数の値を作成できるようにすることです。たとえば、私のフォームは次のようになります。

Your Name
Email Address
{Dog's Name
Dog's Breed}

2 つの犬のフィールドは、関連/グループ化されたフィールドです。これら 2 つのフィールドの下に、別の犬を追加するかどうかをユーザーに尋ねるボタンがあります。このボタンをクリックすると、2 つの新しい犬の名前と犬の品種フィールドが表示されます。

私の質問は、これらの値が入るようにデータベースをどのように構築すればよいですか? 個人の名前と電子メールアドレスだけを保持する送信テーブルを用意するのが最善ですか?次に、各犬を送信テーブルのエントリに関連付ける ID (外部キー) を持つ犬の名前と品種のみを保持する別のテーブルを作成します。 ?

また

名前、電子メール、犬の名前、犬の品種の列を持ち、犬の名前と犬の品種フィールド内に複数の値を保持するテーブル (送信) を 1 つだけ持つことは何とか可能ですか?

私はこれを明確に説明していることを願っています:)

4

1 に答える 1

0

表 1: ユーザーの列: id (自動インクリメント)、名前、メールアドレス

表 2: 犬の列: id (自動インクリメント)、uid (=user_id)、name、breed

送信時に、ユーザーが存在するかどうかを確認します (メールアドレスを確認することで確認できます)。そうでない場合は、ユーザーを挿入し、last_insert_id() ユーザーが存在する場合はその ID を選択します。

次に、dogs 配列をループして、見つけた $uid を使用して、dogs-table に挿入します。

別々のテーブルが必要な理由は、1 人あたりの犬の数に制限がないためです。


あなたはもっとうまくやることができます ;) 表 3: dog_breeds 列: id (auto_increment), name

次に、「品種」を犬テーブルから品種に属する ID に変更します。このようにして、入力された品種の量を制御できます。これにより、「名前」と「名前」などの二重の名前を防ぐことができます (人間にとっては同じです)。

于 2013-07-11T17:28:22.127 に答える