-1

我有一张product桌子:

ProdId(PK)
Prod1
Prod2
Prod3 
Prod4    

Certification表:

Certification(PK):
Cert1
Cert2
Cert3

如何建模以下关系(伪表):

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"是不允许的

4

2 回答 2

1

这是架构。

table product (id, name)
table certification (id, name)
table product_group (id, product_id)
table product_group_certification (id, product_group_id, certification_id)

现在,假设我们Prod2在上面的示例中采用了,在这个模式中它看起来像这样。

**product**
1, Prod2

**certification**
1, Cert1
2, Cert2
3, Cert3

**product_group**
1, 1  // Prod2 with Cert1, Cert2
2, 1  // Prod2 with Cert1, Cert2, Cert3

**product_group_certification**
1, 1, 1
2, 1, 2
3, 2, 1
4, 2, 2
5, 2, 3
于 2012-08-06T23:15:50.580 回答
0

当您在上面说“psuedotable”时,您的意思是所描述的表格只是说明性的,还是您的字面意思是您必须存储文本字符串“Prod1 with Cert1”、“Prod1 with Cert1、Cert2”等等?如果是前者,对我来说基本解决方案似乎类似于以下内容:

ProdWithCertId (PK)    Prod (SK) Cert (SK)
1                      Prod1     Cert1
2                      Prod1     Cert2
3                      Prod1     Cert3
4                      Prod2     Cert1
5                      Prod2     Cert2
6                      Prod2     Cert3
于 2012-08-06T23:08:59.413 回答