帮我按照这个需求设计数据库架构某商城有250万个产品,分为45个大类,每个大类下有若干小类,整个商城有900个小类.每个小类下有若干产品,总的产品数250万个.属于每个小类的产品具有一组相

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 19:23:13

帮我按照这个需求设计数据库架构某商城有250万个产品,分为45个大类,每个大类下有若干小类,整个商城有900个小类.每个小类下有若干产品,总的产品数250万个.属于每个小类的产品具有一组相
帮我按照这个需求设计数据库架构
某商城有250万个产品,分为45个大类,每个大类下有若干小类,整个商城有900个小类.每个小类下有若干产品,总的产品数250万个.属于每个小类的产品具有一组相同属性,区别在于属性的值不同.例如,“高度”是某个小类的一组属性中的一个属性,属于这个小类的产品A和产品B都具有“高度”属性,区别在于产品A的高度是1cm,而产品B的高度是2cm.整个商城的所有商品共有1200个互不相同的产品属性.属性对产品小类是多对多关系.属性对产品也是多对多关系.属性对产品大类也是多对多关系.即一个属性可能对应几个不同的小类,一个小类也可能对应几个不同的属性.属性和大类也是这样的关系.属性和产品也是这样的关系.每个产品都有一个价格和库存数属性.价格和库存单独作两张表.要求在显示某个产品编号时,列出产品的所有属性,属性值,所属大类,所属小类,该产品库存数,产品价格.本问题的目的是帮助我理解设计数据库的多表关联方法,请以此需求为例设计一个数据库架构并解释让我理解.我的实验环境是MySQL数据库.笔记本上的.
我基本上解决这个问题了

帮我按照这个需求设计数据库架构某商城有250万个产品,分为45个大类,每个大类下有若干小类,整个商城有900个小类.每个小类下有若干产品,总的产品数250万个.属于每个小类的产品具有一组相
1、首先要清楚,多对多的关系,必须要有一张关系表.
2、大类和小类,本质是一样的,可以放在一张表中,通过父子ID区分,同时也便于扩展,下面细说
3、LZ可能自己没注意到,你描述的产品其实是产品小类,这个是有区别的,比如说你卖的是一款劳力士,那么虽然同一款劳力士有很多个,但是这款下的每一个劳力士手表都应该有它独特的标识,如生产时间、购买者等等,所以这些商品不能放在一条记录里面,用一个库存数量直接统计,它必须每个商品都作为一条记录.然后有是否售出的字段,最后用count统计出库存数量,而还有些商品,比如说牙膏,某种型号的牙膏,其产品全部相同,不会有人关心其中某只的具体情况,那么这类商品可以直接加个库存数量的字段(事实上,一般的商品都会像对劳力士手表那样设计数据库,给每个商品区分对待)
4、“价格和库存单独做两张表”,这个我没有理解,一般来说,价格是直接写在产品分类里,实际情况的话,可能会有多个价格字段,比如说进货价,阳光价,指导价之类的,根据需要添加字段,另外,也可以把价格当成属性写在属性表里.库存单独做一张表,我也不太理解,产品交易的时候,会产生一条交易的记录存到数据库的‘交易明细表’.难道你指的是通过统计这个交易记录来计算库存?
5、下面的设计是根据楼主要求 加上 我的理解来的,仅作理解.实际生产中,还会添加很多其他字段,比如用于记录日志的操作人,操作时间,更新时间,创建时间,用于防止并发的版本号(ver),用于逻辑删除的标识字段(D_key),还需要有某些用于产生关帐的字段等等,不一一列出.
Classification
IDF_IDGrade(分类等级)NAME
11电器
21家具
312彩电
412冰箱
522床
622电脑桌
733海尔冰箱
853红星床
974海尔冰箱(型号Y1)
1084红星实木双人床
1184红星实木单人床
attribute
IDNAME
1长
2宽
3高
4成本价
Product
IDNAMEClassification_ID
1海尔冰箱(型号Y1)9
2海尔冰箱(型号Y1)9
3红星实木双人床10
4红星实木单人床11
Operate_detail
IDProduct_idOperate_type_idOperate_date
1112011-11-11
2212011-11-11
3122011-11-30
Operate_type
IDNAME
1进货
2卖出
Relation_classification_ attribute
IDClassification_IDAttribute_IDAttribute_VALUEUnit_ID
19 3 1.5 1
211 2 2 1
Unit
IDNAME
1米
2千克
3元
每一个产品不必要和属性对应,如产品中的1和2,拿它所属的分类对应就好了,1和2基本完全相同,不相同的地方,如出厂日期等等通用的字段,可以直接再产品里面加字段标出,如果还觉得不能满足需求,再加张产品和属性的关系表吧,方法和Relation_classification_ attribute一样
Classification中 F_ID表示当前记录所属的分类,比如记录9、海尔冰箱(型号Y1),它的F_ID是记录7 海尔冰箱,Grade表示分类的等级,理解成上级分类的层数+1就好了.
Relation_classification_ attribute中
1表示海尔冰箱(型号Y1)的长度为1.5米
2表示海尔冰箱(型号Y1)的宽度为1.5米
你要得到这个商品的所有属性和值的话,
select * from Relation_classification_ attribute a inner join Classification b on a.Classification_ID = b.id where a.name = ‘海尔冰箱(型号Y1)'
另外,商品库存数量是通过操作明细得到的,某类产品进货的总数减去卖出的总数,就是库存数量.如上面的海尔冰箱(型号Y1) 进了两个,卖了一个,那么库存数量就是1
写了两个小时,不知道楼主满意否?

帮我按照这个需求设计数据库架构某商城有250万个产品,分为45个大类,每个大类下有若干小类,整个商城有900个小类.每个小类下有若干产品,总的产品数250万个.属于每个小类的产品具有一组相 如何设计架构我的数据库结构 在做数据库设计时,正文包括:(1)需求分析 (2)概念设计 在数据库设计过程中,在什么阶段建立数据字典? 有几个选项,需求分析阶段,物理设计阶段,逻辑设计阶段,应该是哪一个,求高手解答! 按照这题目的要求,分层开发是指什么呢?同时,数据库设计方面有什么难点的吗 这种java项目经理称职么一点不懂java一点不懂数据库一点不懂页面一点不懂服务器一点不懂项目架构不做需求分析不做任何设计来了活一股脑往下发自己什么都不管给组里水平最差的人难度 计算机的B/S和C/S架构是什么?J2EE,J2SE,J2ME也是架构,跟这个有关系吗?B/S和C/S架构是什么? =VLOOKUP($C13,数据库!$B$3:$G$15,COLUMN()-2,0),请帮我解释一下这个函数的含义,重点是COLUMN()-2是什么意思? 在关系数据库设计中,设计关系模式是哪个阶段的任务A、需求分析阶段 B、概念设计阶段 C、逻辑设计阶段 D、物理设计阶段 英语翻译本系统是将工艺流程模式与信息管理以及数据库合理应用相结合开发设计的,主要实现其主要关注的几个信息目标.系统采用C/S架构,操作简单方便、界面简洁、有实时性.管理员可进行 数据库设计的步骤有哪些数据库 期待你的回答 小位移传感器设计谁有这个设计的文章,把完整的文章帮我弄一篇下来呗, 帮我写个英语 note.按照这个题目写. 求:软件开发团队中各个成员的英文简称比如说项目经理、架构设计师,这些英语的简称是什么,最好也有全称.回答对的,分都给你.项目经理、架构分析师、系统分析师:、数据库管理师、程 在数据库的设计叙述中,在需求分析阶段建立数据字典这句话正确吗? 数据库设计题 数据库设计步骤?求解 数据库设计三大范式有什么区别