我有一个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"
以下是限制:
- 不能有重复项,例如上表中不允许
ProdwithCert6 - "Prod2 with Cert1, Cert2, Cert3"
Product
至少有一个Certification
如何在SQLServer2005中正确地为ProdwithCert
关系建模?
感谢
第一个要求可以通过在(ProductId, CertId)
上具有主键(或唯一索引)的ProdwithCert
表来满足。
第二个要求不能使用键约束或检查约束来强制执行。我唯一能想到的就是通过存储过程传递所有修改。该过程可以在一个事务中添加带有证书的产品。