从零开始实现一个电子商务网站----数据库的设计(四)
2010-07-28 00:41
826 查看
如何设计数据库 我们已经得到了类图。类图里面详细的记录着每个类的属性与方法以及类与类之间的关系。正因为有了这些才让我们接下来的工作得心应手。 但我们在设计数据库的时候必须面临几个问题:如何在设计数据库的时候体现类图中的继承关系,以及类图中的1:N,N:N这类多重度问题。 带着这些疑问,咋们来看看下面的图_数据库_1。这张图里面的关系很好的解决刚提出来的问题。图_数据库_1描述的是关于商品部分的类图的部分关系。在商品部分类图中,可选某些特征的商品类是继承于商品类,商品类与商品细节图片类是1:N, 可选某些特征的商品类与商品特征类是1:N,商品特征类与商品细节类是1:N。我们来看看这张数据库的关系图是怎么解决这些问题的。 继承问题: 表CustCommodity与表Commodity通过commodity表中的id字段建立外键关系,这样1条Commodity元组可以关联CustCommodity中的多条元组,并且CustCommodity也可以通过这个关联来获取Commodity中与它关联的元组。并且表CustCommodity中是以字段id为主键,也就避免一条CustCommodity元组关联多条commodity元组的情况。这样一来是不是有点像面向对象程序设计里的单重继承呢。 1:N问题: 这里所描述的1:N问题不是普通的1:N,普通的1:N问题可以通过设计外键来解决。查看商品部分类图(图_类图_1)我们能看到:商品类与商品细节图片类有1:N关系,商品特征与商品细节图片有1:N关系。商品类,商品特征类,商品细节图片类在数据库中分别设计成表Commodity,CustCommodityAttribute,CommodiityImage。我们并不希望粗暴的在CommodityImage中加上两个外键,来达到1:N的效果。这样设计会为数据库的扩展性带来负面影响。也许现在有2个类需要引用商品细节图片类,当过段时间随着需求的改变会有第3个第4类冒出来,如果不采取有效的措施这将会是无尽的噩梦!在这里我们采用N:N的原则来解决这个问题,毕竟N:N可以分解为1:N。这样如果有第3个或第4个类冒出来的话我们只需要增加一个关系表就能解决问题,而不用去修改以存储了海量数据的表!
图_数据库_1解决了上面的几个难题后,接下来的问题将变的非常的简单。只是根据类图的描述来设计表与表之间的关系及g根据类图中包含的类的属性来设计表的字段。我们来做张Commodity表吧,这张表代表的是商品类。根据图_类_商品中描述的商品类我们可以将Commodity表设计为:
图_数据库_Commodity
商品类中的属性:图片描述因为是集合形式的不能将它简单的设计为一个字段,这样将违反了数据库设计标准中的第一范式,会造成数据冗余。故将它分解为图_数据库_1中的关系表CommodityImageRelation. 按照这样的方法,我们能将设计好的类图转化为基于它的数据库。完成后的数据库关系图如下:
图_数据库_总体结构图
图_数据库_1解决了上面的几个难题后,接下来的问题将变的非常的简单。只是根据类图的描述来设计表与表之间的关系及g根据类图中包含的类的属性来设计表的字段。我们来做张Commodity表吧,这张表代表的是商品类。根据图_类_商品中描述的商品类我们可以将Commodity表设计为:
图_数据库_Commodity
商品类中的属性:图片描述因为是集合形式的不能将它简单的设计为一个字段,这样将违反了数据库设计标准中的第一范式,会造成数据冗余。故将它分解为图_数据库_1中的关系表CommodityImageRelation. 按照这样的方法,我们能将设计好的类图转化为基于它的数据库。完成后的数据库关系图如下:
图_数据库_总体结构图
相关文章推荐
- 从零开始实现一个电子商务网站----UI的设计布局(八)
- 从零开始实现一个电子商务网站----编码实现之N层类目结构(七)
- 从零开始实现一个电子商务网站----一切从需求开始(二)
- 从零开始实现一个电子商务网站
- 从零开始实现一个电子商务网站----整理需求(三)
- 从零开始实现一个电子商务网站----错误比想象中来得更快(五)
- 从零开始实现一个电子商务网站----解决碰到的问题(六)
- 设计与实现一个视频网站——悟空视频
- python实现一个简单的图书馆借阅系统(不涉及数据库和界面设计)
- 独立开发电子商务网站---数据库设计
- 电子商务网站的设计与实现(二):一期功能清单
- 电子商务系统的设计与实现(十一):数据库设计
- 从零开始搭建自己的网站三:数据库设计
- 电子商务网站的设计与实现(二):一期功能清单
- 电子商务系统的设计与实现(十一):数据库设计
- 使用asp.net从零开始制作设计一个网站之一
- 一个电子商务网站的设计及开发环境配置文档
- 电子商务网站的设计与实现(三):四大子系统,登录-账务-前端-后端
- 共用一个数据库实现pc网站和手机网站的制作
- 一个简单的实现不同权限的用户登录后看到不同的菜单设计的数据库表清单