データベースで次の状況を表すのに苦労しています。
ユーザーは、複数のアドレス(クライアントの要求に応じて、自宅、オフィス、郵送など)を宣言できます。
UserID1つのユーザーアカウントを表す、と呼ばれる自動インクリメントされた主キーがあります。私は、BelongsToUserID各ユーザーのフォームフィールドを次のように表す列を作成することを考えていました。
各行は行でしか占有できないため、これを行うことはできませんUserID。これを達成する方法について何か考えはありますか?
データベースで次の状況を表すのに苦労しています。
ユーザーは、複数のアドレス(クライアントの要求に応じて、自宅、オフィス、郵送など)を宣言できます。
UserID1つのユーザーアカウントを表す、と呼ばれる自動インクリメントされた主キーがあります。私は、BelongsToUserID各ユーザーのフォームフィールドを次のように表す列を作成することを考えていました。
各行は行でしか占有できないため、これを行うことはできませんUserID。これを達成する方法について何か考えはありますか?
アドレスを保持する別のテーブルが必要です。おそらく次のようなものです:
| id(主キー)| type(enum home / work / etc。)| userID | 住所|
これは2つの方法で作成できます
1つ目は単純ですが、主キーを作成せず、候補キーとして複合キーペアを使用し、その中から主キーを選択することをお勧めしません。テーブルに主キーがないため、アドバイスされていません
2番目のアプローチは適切であり、マスターテーブルを作成し、それをリレーションテーブルとして使用し、別のテーブルを使用して実際にデータを格納することも使用します。
マスターテーブルにはid、userid、address_bitを含めることができ、2番目のテーブルにはid、address_bit、addressを含めることができます。
他の解決策を見つけたら教えてください。それは私が新しいことを学ぶのを助けるかもしれません:)