2012-08-05 59 views
0

我有一個product表:SQL模型(一對多),在SQL Server 2005

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

如何正確的模型在SQL Server 2005 ProdwithCert關係?

由於

回答

0

第一個要求可通過ProdwithCert表上(ProductId, CertId)主鍵(或唯一索引)來滿足。

第二個要求不能使用密鑰或檢查約束強制執行。我能想到的唯一事情就是通過一個存儲過程來引導所有修改。該過程可以在一次交易中添加帶有證書的產品。