2009-09-24 123 views
0

alt text http://produits-lemieux.com/database.jpg数据库关系多对多

这是basicly我的数据库结构

一个产品(比方说,SOAP)将有许多零售销售规模

  • 1升
  • 4升
  • 20升

在我的“produit”数据库中,我将有肥皂项目(编号1) 在大小的数据库,我将有很多大小菱:

  • 1升
  • 4升
  • 20升

如何不复制产品3次大小不同...我喜欢能够在数据库中可用的所有大小的产品大小中具有复选框,并检查是或否(布尔值)


答案一个得到的是完美的,但如何有这样的选项:

肥皂[X] 1升[] 4升[X]20升

+1

只是做一样的,你这样做是为了格式,认证和odeurs。 – Lazarus 2009-09-24 18:32:30

回答

4

我不是我确定我了解你的确切场景,但要创建一个多对多的关系,你只需创建一个“关系表”,在其中存储你想链接的两条记录的id。

实施例:

Products 
******** 
ProductID (PK) 
Price 

Retailers 
********* 
RetailerID (PK) 
Name 

ProductRetailerRelationships 
**************************** 
ProductID 
RetailerID 
+0

达尼特!当我开始输入时,另一个人正确回答正确答案! – Pulsehead 2009-09-24 18:34:47

+0

它是另一个数据库维护...是可能的复选框选项?...但我完全理解你的答案,它的工作! – menardmam 2009-09-24 18:36:30

+0

也称为交叉引用表或外部参照表。 – 2009-09-24 18:55:08

0

甲许多一对多关系使用中间表几乎总是建模。对于你的榜样,

Product 
-------- 
prod_numero 
... 

Size 
-------- 
size_numero 
... 

Product_Size 
-------- 
prod_numero 
size_numero 
... 

Size表将包含特定大小(例如10升)和Product_Size表中创建一个ProductSize配对。

0

您将需要一个中介,或 “加入” 表

ProductSizes
.......................
的ProductID
SizeID每个产品的尺寸组合

0

基于答案

一个记录,这里所提出的数据库表的布局,它看起来复杂的给我,但你肯定是要做到这一点,方式BEST解决方案?

alt text http://produits-lemieux.com/database2.jpg

+0

我开始想,也许去一个XML结构...但我可以记得我已经读过的地方:曾几何时,程序员有一个问题,然后他使用XML,现在他有两个问题!... – menardmam 2009-09-24 22:22:04