0

私は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少なくとも 1 つあるCertification

ProdwithCertSQL Server 2005 で関係 を適切にモデル化するにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

ProdwithCert最初の要件は、主キー (または一意のインデックス) を持つテーブルによって満たすことができます(ProductId, CertId)

2 番目の要件は、キー制約またはチェック制約を使用して強制することはできません。私が考えることができる唯一のことは、ストアド プロシージャを介してすべての変更を行うことです。この手順では、証明書付きの製品を 1 回のトランザクションで追加できます。

于 2012-08-05T06:10:34.827 に答える