-1

シナリオは次のとおりです...人は、関連付けられたプロファイル レコードの有無にかかわらず、ユーザー レコードを持つことができます。その人は、自分が「管理」する複数のプロファイル (家族など) を持つこともできます。これらのプロファイルには、Web サイト/アプリを使用する場合と使用しない場合があるため、関連付けられたユーザー レコードがある場合とない場合があります。

プロファイル レコードには、名前、生年月日などの個人情報が含まれています。そのため、スミスおばあちゃんのプロファイルには個人情報が含まれていますが、サイトを自分で使用することはなく、娘だけが使用するため、関連するユーザー レコードはありません。

重要なフィールドを以下に示します (これは適切に正規化された一連のテーブルですか?):

ユーザー: ID、電子メール、パスワード、profile_id (FK、NULLABLE)

USER_PROFILES: id、user_id、profile_id

プロファイル: id、name、dob、user_id (FK、NULLABLE)

私が疑問に思っているのは、profile_id 外部キーと user_id 外部キーの両方が必要な場合、これらは冗長ですか? 私のサイトには、同じページで人のユーザー情報とプロファイル情報を編集できるプロファイル編集ページがあるので、参照ページからプロファイル ID またはユーザー ID を提供してプルアップできるようにしたいと考えています。適切なデータ。プロファイル レコードに user_id がない場合、現在のプロファイルにユーザー レコードがあるかどうかを確認するのは困難です。

4

1 に答える 1

1

テーブル構造を正しく理解していれば、profile_id が冗長に見えます。USERS の id は PROFILES へのリンクであり、user_id の外部キーとして存在します。

あなたがそれをどのように照会しているかについては...私は少し心配です。ユーザー ID を要求し、ユーザーが関連するすべてのプロファイルを表示および編集できるようにするべきではありませんか? これは現在の慣行に沿っているようで、USERS に profile_id が必要だったジレンマを解決するはずです。

それでも、現在の設定を維持したとしても、ユーザー ID を使用してプロファイルを照会したり、プロファイル ID を使用してプロファイルを照会したりできるため、どちらの方法でも設定されます。

于 2012-11-14T19:45:20.427 に答える