如何在数据库中存储这种类关系?

时间:2012-07-08 17:44:50

标签: c# .net database class

说我有以下课程:

  • EmailAddress的
  • 地址
  • 联系
  • 用户
  • 事件
  • 任务
  • 注意

每个联系人可以有多个EmailAddresses或多个地址,用户也可以有多个。 (家庭住址,公司地址或个人电子邮件,商业电子邮件等)

我在想,也许我应该让User类扩展Contact类。这意味着我将在EmailAddress和Address类中有一个引用它们所属的联系人的字段。

然后我希望能够将注释附加到以下任何类型:事件,任务或联系人。我还希望能够为这些类型添加多个注释。我想不出在数据库中设计这个结构的好方法。

2 个答案:

答案 0 :(得分:1)

您是否尝试使用Entity Data Model Designer绘制类模型并查看它生成的数据库模型?

答案 1 :(得分: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 

如果联系人具有与用户完全相同的属性,则

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