次のクラスがあるとします。
- 電子メールアドレス
- 住所
- コンタクト
- ユーザー
- イベント
- 仕事
- ノート
各 Contact は複数の EmailAddresses または複数の Address を持つことができ、Users もそれぞれ複数持つことができます。(自宅の住所、勤務先の住所または個人の電子メール、勤務先の電子メールなど)
User クラスで Contact クラスを拡張する必要があるのではないかと考えていました。これは、EmailAddress クラスと Address クラスに、それらが属する Contact を参照するフィールドがあることを意味します。
次に、イベント、タスク、または連絡先のいずれかのタイプにメモを添付できるようにしたいと考えています。また、これらのタイプに複数のメモを添付できるようにしたいと考えています。データベースでこの構造を設計する良い方法が思いつきません。