求教一个多对多的数据库搭建,实现参考网站的需求

lovebaby 2015-04-17 11:02:36
先简单描述一下:
1、比如有属性表A、属性表B、属性表C、属性表D四个属性表,每个第一级分类对应不同的属性集,比如分类A对应属性表A、属性表B、属性表C,分类B对属性表A、属性表C、属性表D
2、商品表与分类表通过主、外键关联,同时与属性表为多对多的关系,即某个商品可能同时对应多个属性表里的多个属性值。

网上处理多对多的关系,一般是在两个多对多的表之间建一个中间表,但是按照需求来看,不大可能在一个商品表与多个属性表之间建立多个中间表吧。



上述需求是根据这个网站来的,不知道要实现这个需求应该怎样进行正确的数据库设计?

http://www.schell.eu/deutschland-de/produkte/waschtisch.html
...全文
107 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hery2002 2015-04-19
产品表( 产品ID,产品分类ID,产品名称,产品描述,是否激活,....) 产品分类表(产品分类ID,产品分类名称,产品分类描述,是否激活......) 产品分类明细表(产品分类ID,序号,产品属性ID,是否激活.....) 产品属性表(产品属性ID,序号,产品属性名称,产品属性值,产品属性描述,是否激活......) 例子: 产品表 产品ID 产品分类ID 产品名称 产品描述 是否激活 --------- ---------------- ---------------- ------------ ------------- PN001 PC001 产品001 产品001 是 PN002 PC002 产品002 产品002 否 .... .... .... .... PN00N PC00N 产品00N 产品00N 是 产品分类表 产品分类ID 产品分类名称 产品分类描述 是否激活 ---------- ------------ ---------------- ------------ PC001 A A类产品分类 是 PC002 B B类产品分类 是 产品分类明细表 产品分类ID 序号 属性ID 是否激活 ---------- ---- ------------ ------------ PC001 1 PP001 是 PC001 2 PP002 是 PC002 1 PP002 是 PC002 2 PP003 是 产品属性表 产品属性ID 产品属性名称 产品属性描述 是否激活 ---------- ------------- ----------------- ------------------ PP001 温度 温度 是 PP002 证书 证书 是 PP003 功能 功能 是 PP004 XXX XXX 是
回复
lovebaby 2015-04-19
现在需求就是这样的。产品分类表对应产品属性表,他们之间是多对多的关系。如产品分类A可能有温度和证书两种属性,产品分类B可能有功能和证书两种属性。相应的的该产品分类下的产品就具有对应属性表的属性值,但这个属性值也是多对多的。如产品分类A可能有温度和证书两种属性,那么这个产品分类A下的某个产品可能同时具有证书表里的两种属性值,而并非一种属性值。
回复
hery2002 2015-04-18
其实按照你第一条来说, 1.产品表和产品分类表建立外键关系 2. 产品分类和产品属性表建立外键关系即可满足你的要求, 产品表和产品分类表是一对一关系, 产品分类表和产品属性表是一对多关系 然后推出产品表和产品属性表是一对多关系就可以了。 你说的产品表和产品属性表是多对多关系,那是你的产品分类表不够明确,导致多对多关系的出现。
回复
lovebaby 2015-04-18
再贴一个
回复
lovebaby 2015-04-18
想了一下,貌似也可以这样设计。不知道能否实现功能需求
回复
lovebaby 2015-04-18
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-04-17 11:02
社区公告
暂无公告