我正在努力研究如何为我正在构建的数据库绘制模型。一旦我正确地建模了数据库,我将在C#中使用SQL2LINQ。
我正在研究的第一部分是为分发列表设计SQL表。
这些DL似乎非常复杂,因为以下规则适用:
对于此人,我将持有以下信息:
我不喜欢的是复制信息的想法,多次在数据库中拥有相同的人;看起来不太干净。
任何帮助都会非常感激,我无法完全理解这一点。
答案 0 :(得分:1)
您需要了解外键和父/子关系。
我不确定我是否会像你描述的那样完全设计它。您可以为每个分发列表创建一个单独的表,或者您可以使用一个列来表示它所属的事件类型。
我不明白为什么分发列表需要递归,但您可以与自己建立外键关系。查询将更难以这种方式编写,但可以由具有足够技能的人员完成。 Google用于“递归SQL”。
在它们之间有一个PERSON表,一个DISTRIBUTION_LIST表和一个JOIN表。听起来PERSON和DISTRIBUTION_LIST之间存在很多关系。
答案 1 :(得分:1)
听起来好像你只想要人和分发列表之间的多对多关系,你可以使用联结表进行建模:
<强>人强>
<强> DistributionListEntries 强>
<强> DistributionList 强>
您可以将Type
直接存储在通讯组列表中,也可以将其作为DistributionListTypes
表的外键,并提供有关通讯组列表类型的其他信息。