0

我正在为如何为我要构建的数据库绘制模型而苦苦挣扎。正确建模数据库后,我将在 C# 中使用 SQL2LINQ。

我正在研究的第一部分是为分发列表设计 SQL 表。

这些 DL 看起来相当复杂,因为适用以下规则:

  1. 存在三种不同类型的 DL(用于特定事件)。
  2. 每种类型的 DL 将包含多个 DL(可以超过 10 个)。
  3. 一个人可以处于所有三种不同类型的 DL 中。
  4. 一个人可以在多个相同类型的 DL 中。

对于此人,我将持有以下信息:

  1. 名字
  2. 联系电话
  3. 电子邮件地址

我不喜欢重复信息的想法,在数据库中多次拥有同一个人;那似乎不是那么干净。

任何帮助将不胜感激,我不能完全围绕最好的方法来做到这一点。

4

2 回答 2

1

您需要了解外键和父/子关系。

我不确定我是否会完全按照您的描述进行设计。您可以为每个分发列表创建一个单独的表格,或者您可以有一个单独的表格,其中包含一列来说明它属于哪个事件类型。

我不明白为什么分发列表需要递归,但是您可以与自己建立外键关系。以这种方式编写查询将更难,但可以由具有足够技能的人完成。谷歌搜索“递归 SQL”。

在它们之间有一个 PERSON 表、一个 DISTRIBUTION_LIST 表和一个 JOIN 表。听起来 PERSON 和 DISTRIBUTION_LIST 对我来说是多对多的关系。

于 2012-06-20T10:20:31.527 回答
1

听起来好像您只需要人员和分发列表之间的多对多关系,您可以使用联结表对其进行建模:

  • ID
  • 名字
  • ETC

分布列表条目

  • ID
  • 分发列表 ID
  • 个人身份

分布列表

  • ID
  • 类型

您可以将其直接存储在分发列表表中,也可以将其作为包含分发列表类型附加信息Type的表的外键。DistributionListTypes

于 2012-06-20T10:22:51.760 回答