Mysql 使用具有多个主键组合的外键
我有一个包含以下字段的公司表:Mysql 使用具有多个主键组合的外键,mysql,sql,Mysql,Sql,我有一个包含以下字段的公司表: CompanyID EmailDomain1 EmailDomain2 EmailDomain3 ... CompanyID EmailDomain EmailDomainstat 我有另一个带有以下字段的表t: CompanyID EmailDomain1 EmailDomain2 EmailDomain3 ... CompanyID EmailDomain EmailDomainstat 以下是限制条件: (CompanyID,emaildomain)
CompanyID
EmailDomain1
EmailDomain2
EmailDomain3
...
CompanyID
EmailDomain
EmailDomainstat
我有另一个带有以下字段的表t:
CompanyID
EmailDomain1
EmailDomain2
EmailDomain3
...
CompanyID
EmailDomain
EmailDomainstat
以下是限制条件:
如何在主键和外键的帮助下获得这种效果?我知道必须使用级联删除,但我不知道如何将外键与多个主键组合绑定。任何时候为列编号时,通常都表明数据模型出了问题。电子邮件域是否有一些基本的东西意味着它显然是一个
EmailDomain2
而不是一个EmailDomain1
?我同意@Damien的观点,您的数据可能没有标准化。但是,如果您希望/必须保持这种方式,那么必须使用触发器。在这种情况下,主键和外键无法帮助您。感谢您的回复。不,emaildomain1和emaildomain2是不可区分的。那么我建议应该有一个单独的表,将公司的每个电子邮件域存储为一个单独的行-注意,这实际上更清楚地映射到您所说的第2部分需要的内容-电子邮件域现在确实得到了DELETE
d(而不是在您的模型中,列实际得到UPDATE
d到NULL
)。如果你真的想限制一家公司可以拥有多少个域,那可以通过适当的键和一个小的辅助表来实现。谢谢你的评论Damien。我已经解决了这个问题,我将准确地实现它。