C# SQL数据库模型
我正在努力研究如何为我想要构建的数据库绘制模型。一旦数据库建模正确,我将在C#中使用SQL2LINQ 我要看的第一部分是为通讯组列表设计SQL表 由于以下规则适用,这些DL看起来相当复杂:C# SQL数据库模型,c#,sql,database,linq,database-design,C#,Sql,Database,Linq,Database Design,我正在努力研究如何为我想要构建的数据库绘制模型。一旦数据库建模正确,我将在C#中使用SQL2LINQ 我要看的第一部分是为通讯组列表设计SQL表 由于以下规则适用,这些DL看起来相当复杂: 有三种不同类型的DLL(用于特定事件) 每种类型的DL将包含多个DL(可以超过10个) 一个人可以处于所有三种不同类型的DL中 一个人可以在同一类型的多个DLs中 对于此人,我将持有以下信息: 名字 姓 联系电话 电子邮件地址 我不喜欢的是重复信息的想法,让同一个人在数据库中重复多次;看起来不太干净 如果您能
如果您能提供任何帮助,我将不胜感激。我不知道如何才能做到这一点。您需要了解外键和父/子关系 我不确定我是否会像你描述的那样设计它。对于每个通讯组列表,您可以有一个单独的表,也可以有一个带有列的表来说明它所属的事件类型 我不明白为什么通讯组列表需要递归,但您可以自己拥有外键关系。这样写查询会比较困难,但是可以由一个有足够技能的人来完成。谷歌搜索“递归SQL”
在它们之间有一个PERSON表、DISTRIBUTION_LIST表和JOIN表。在我看来,个人和通讯组列表之间似乎存在多对多关系。听起来好像您只想在个人和通讯组列表之间建立多对多关系,您可以使用连接表对其进行建模: 人
- 身份证
- 名字
- 等
- 身份证
- 分配列表
- 拟人
- 身份证
- 类型
您可以将
类型
直接存储在通讯组列表表中,也可以将其作为DistributionListTypes
表的外键,其中包含有关通讯组列表类型的其他信息。谢谢,这很有帮助。这种设置方式不是我设计的,而是我继承的。这一切都是在Excel电子表格中完成的。目前,我希望将其更新。我不了解这些联接表:-(我想我知道这是怎么回事了,现在,你使用联接表来关联这两个表,所以在联接表中,我添加了一条记录,其中包含一个Person ID和一个DistributionListID,这就形成了这两个表之间的关系。我想我现在已经知道了。我唯一的问题是联接tbale中的mu ID字段都是samm int..所以当编辑时使用它时,只需知道每个通讯组列表或个人的正确int值即可:-(不一定。对于您认识其中一个的情况(“为此人提供所有列表”或“告诉我属于此列表的所有人”),这很好。对于其他情况,您将在父表上使用WHERE子句(例如。“告诉我名单上所有有红头发的人。”)当DL包含DL时,他们必须是同一类型的人吗?