Database design 如何代表;“全部”;在主键-外键关系中

Database design 如何代表;“全部”;在主键-外键关系中,database-design,Database Design,我必须创建一个db设计来存储列入黑名单的传真号码。我创建了一个表,该表的一列是customerID,它是表Customer的外键。现在我想要一个传真号码,它被列入所有客户的黑名单。我应该如何进行这项工作。在这种情况下我应该使用Null吗。请提供选项如果其所有客户都被列入黑名单,则为那些没有关系的客户提供单独的表格 有一些号码被列入所有客户的黑名单,也有一些号码被列入某些客户的黑名单。根据定义,数字不能同时在这两种语言中使用。因此,某些数字的黑名单(我假设是多:多关系)可以使用经典的多多关联表设计

我必须创建一个db设计来存储列入黑名单的传真号码。我创建了一个表,该表的一列是customerID,它是表Customer的外键。现在我想要一个传真号码,它被列入所有客户的黑名单。我应该如何进行这项工作。在这种情况下我应该使用Null吗。请提供选项

如果其所有客户都被列入黑名单,则为那些没有关系的客户提供单独的表格

有一些号码被列入所有客户的黑名单,也有一些号码被列入某些客户的黑名单。根据定义,数字不能同时在这两种语言中使用。因此,某些数字的黑名单(我假设是多:多关系)可以使用经典的多多关联表设计。对于所有被列入黑名单的号码,没有与客户的关系,这意味着没有加入条件。由于每个表中的数据是互斥的,因此每种类型的数据出现在不同的表中


我似乎无法获得显示我对基本设计的看法的图像,因此我将在此处粘贴链接:

U意思是创建两个表,一个是customerID和faxnumber的关系,另一个是所有客户的表。这不是一个性能开销。请建议您能解释一下您的答案吗?为什么您认为这比只返回与特定CustomerId匹配的或CustomerId为空的两个更好?同意Preet的建议。如果它是一个没有关联客户的数字,那么它应该在一个没有客户Id的表中。为什么要使用空值呢?@David。按照这个逻辑,为什么要对任何东西使用NULL呢?从语义上讲,它仍然是一个被列入黑名单的传真号码。作为记录,我对最佳设计持矛盾态度,我认为在这个问题上没有足够的关于域要求的信息来做出明确的建议。考虑到nulls的复杂性和缺点,我认为您应该有一个很好的理由将它们添加到任何数据库设计中。在这种情况下,我看不出原因。使用空值的一个原因是它们可以替代“未知”值,但这在这里并不适用。无论你做什么,只要记住下周你会收到一个例外请求,因为一个特定的客户确实需要访问该黑名单号码,所以请尝试轻松地将例外添加到黑名单中。ho1,好。另外,当一个传真号码被列入所有客户的黑名单,然后又添加了一个新客户,这意味着什么?这是否意味着该传真号码也被列入该客户的黑名单?