SQLServer2005中的SQL建模(一对多)



我有一个product表:

ProdId(PK)
Prod1
Prod2
Prod3 
Prod4    

Certification表:

Certification(PK):
Cert1
Cert2
Cert3

我需要对ProdwithCert关系(伪表)进行如下建模:

ProdwithCertId(PK)              ProdwithCert
ProdwithCert1                   "Prod1 with Cert1"
ProdwithCert2                   "Prod1 with Cert1, Cert2"
ProdwithCert3                   "Prod1 with Cert1, Cert2, Cert3"
ProdwithCert4                   "Prod2 with Cert1, Cert2"
ProdwithCert5                   "Prod2 with Cert1, Cert2, Cert3"

以下是限制:

  1. 不能有重复项,例如上表中不允许ProdwithCert6 - "Prod2 with Cert1, Cert2, Cert3"
  2. Product至少有一个Certification

如何在SQLServer2005中正确地为ProdwithCert关系建模?

感谢

第一个要求可以通过在(ProductId, CertId)上具有主键(或唯一索引)的ProdwithCert表来满足。

第二个要求不能使用键约束或检查约束来强制执行。我唯一能想到的就是通过存储过程传递所有修改。该过程可以在一个事务中添加带有证书的产品。

最新更新