3

次のクラスがあるとします。

  • 電子メールアドレス
  • 住所
  • コンタクト
  • ユーザー
  • イベント
  • 仕事
  • ノート

各 Contact は複数の EmailAddresses または複数の Address を持つことができ、Users もそれぞれ複数持つことができます。(自宅の住所、勤務先の住所または個人の電子メール、勤務先の電子メールなど)

User クラスで Contact クラスを拡張する必要があるのではないかと考えていました。これは、EmailAddress クラスと Address クラスに、それらが属する Contact を参照するフィールドがあることを意味します。

次に、イベント、タスク、または連絡先のいずれかのタイプにメモを添付できるようにしたいと考えています。また、これらのタイプに複数のメモを添付できるようにしたいと考えています。データベースでこの構造を設計する良い方法が思いつきません。

4

2 に答える 2

1

エンティティデータモデルデザイナを使用してクラスモデルを描画し、どのデータベースモデルが生成されるかを確認しましたか?

于 2012-07-08T17:49:50.203 に答える
0

連絡先がユーザーと同じプロパティを持っているかどうか、または連絡先がユーザーによって共有されているかどうかは明らかではありません。ユーザーによって共有されていない連絡先の単純なケースを考えてみましょう。メールと電話が文字列よりも複雑な場合は、メールと電話のクラスで置き換えます。

Class User 
   public String name 
   public List<string> emails 
   public List<string> phones
   public List<contact> contacts

Class Contact
   public String name 
   public List<string> emails 

contact が User とまったく同じプロパティを持っている場合

Class User 
   public String name 
   public List<string> emails 
   public List<string> phones
   public List<User> contacts 

継承したい場合は

   Class User : Contact 
       public List<string> phones
       public List<contact> contacts
于 2012-07-08T18:01:48.480 に答える