Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据库模型-SQL-最佳方法_Sql_Database_Database Design - Fatal编程技术网

数据库模型-SQL-最佳方法

数据库模型-SQL-最佳方法,sql,database,database-design,Sql,Database,Database Design,我正在寻找数据库设计方面的帮助 我必须为一组联系人和一组通讯组列表的数据库建模 每个联系人可以在多个通讯组列表中,并且每个通讯组列表可以有多个联系人。在正常情况下,我可以使用连接表来实现此解决方案 但还有一件事要补充。联系人可以选择通过短信或电子邮件两种不同的方式接收通知 联系人可以通过其中一种或两种方法请求发送通知 我遇到的一个问题是,联系人可能希望根据特定的通讯组列表接收不同的通知 所以我们有这样一个问题:-- 我试图避免在我的联系人表中有多个联系人条目,每个联系人都应该是唯一的 有人能帮忙

我正在寻找数据库设计方面的帮助

我必须为一组联系人和一组通讯组列表的数据库建模

每个联系人可以在多个通讯组列表中,并且每个通讯组列表可以有多个联系人。在正常情况下,我可以使用连接表来实现此解决方案

但还有一件事要补充。联系人可以选择通过短信或电子邮件两种不同的方式接收通知

联系人可以通过其中一种或两种方法请求发送通知

我遇到的一个问题是,联系人可能希望根据特定的通讯组列表接收不同的通知

所以我们有这样一个问题:--

我试图避免在我的联系人表中有多个联系人条目,每个联系人都应该是唯一的


有人能帮忙吗?

您可以使用另一个连接表:

contactid, distributionlistid, messagepreference
ContactsDistributions(ContactId, DistributionId, SMSFlag, EmailFlag)
Messagepreference可以是电子邮件或短信。两排,如果他们都要的话。可以添加新的消息类型,而无需更改数据库。为了安全起见,请在代码中使用常量来表示要放入列中的值


或者,在原始连接表中添加sendmailsendsms列,但这有一个缺点,即如果引入新的消息类型,则必须更改数据库结构。

您可以在连接表中再添加一个字段,该字段表示给定联系人将如何从给定通讯组列表接收通知。

因此,您可以添加到连接表中的字段:

contactid, distributionlistid, messagepreference
ContactsDistributions(ContactId, DistributionId, SMSFlag, EmailFlag)

为了指定联系人为每个分发选择的通知类型。

在这种情况下,我将向连接表SMS和email中添加两个字段,这两个字段都是布尔值,并且仅当他们希望收到通知时才设置为true。这允许为组合列表和联系人设置不同的通知


另外,根据您希望如何处理从列表中删除的问题,您可以在连接表上添加一个约束,以便两个字段中至少有一个字段为true,以便始终发送通知,尽管在google群组中,我确实可以访问一些我选择不从中获取通知的列表

为什么你不能使用连接表并将NotificationType放在其中?在“连接表”中添加用户的通知首选项作为新列?太棒了,看不见树木了!