数据库课程设计网上书店数据库管理系统
网上书店数据库系统设计概念结构设计
1.书籍信息表
2.供货信息表
3. 订单信息表
订购日期用户生成订单的
时间日期型日期型的长
度
满足特定的日
期格式
订单总数每份订单书籍的
数量
整型10 1-9999999999
发货地址管理员确定发货
的地址
字符型80
订单状态订单的发货状态字符80
4.顾客信息表
数据项含义说明数据类型数据长度取值围
用户id唯一区分用户的
表示
字符型20 合法的字符用户姓名顾客的真实姓名字符型20 合法的字符用户密码用户的登录密码字符型10
家庭住址顾客收货地址字符型100 合法的字符账户余额用户可用的金额整型10
信用等级整型10
2.根据对网上书店的需求分析,画出如下实体的ER图和实体之间的关系ER图。
图-1书籍信息ER图
图-2 缺货信息ER图
图-3 订单信息ER图
图-4 用户信息ER图
图-5 供货信息ER图
图-6订单详情ER图
图-7供应商信息ER图
图-6 实体之间关系ER图
3.逻辑结构设计
3.1 把ER图转换成相应的关系模型
(a) 书籍{ISBN号,书籍名称,书籍作者,书籍出版年份}
(b) 订单{订购号,订购人,订购日期,订购书籍,书籍数量,发货日期}
(c) 库存{ISBN号,库存量,价格,折扣,库存下限}
(d) 顾客{注册名,真实姓名,家庭住址,联系式,购书卡号
(e) 管理员{管理员编号,管理员真实姓名,密码,具体身份,}
(f) 书-订单{订单号,ISBN号,书籍数量,发货日期}
(g) 订单-顾客{订单号,注册名,订购日期}
(h) 库存-订单{ISBN号,订单号}
3.2 数据模型的优化
将关系模式订单垂直分解为书-订单,和订单-顾客。
个人体会
为期近一个星期的软件能力测试实习结束了,回首整个过程,当第一次拿到实习报告的时候,真的没有想到自己能够和我的同伴们顺利的完成任务,最终事实证明我们做到了,我们学到了更多的知识。
在这期间,我们开始接触了小型的系统。这些小型的系统分析、设计与实现巩固了我们的基础知识,让我们学会了一些编程的技巧,以及一些验证的法。首先是需求分析这块,它很重要。我们根据老师给的要求,结合在网上差的一些资料,做了初步的需求分析,本系统的主要功能是实现信息的发布和管理,涉及到前台用户对书籍信息的浏览和后台管理。在前台的新闻浏览模块里,一般需要对书籍进行分类展示,并需要通过栏目导航进入特定的书籍信息模块。如有文艺类书籍,理工类书籍,计算机类书籍等等。在后台的管理面。需要由合法的管理者来管理书籍的添加、修改、删除等,还有一个管理者的登录、注销的模块。最重要的是管理网上交易。从后台管理大体来看,系统实际分为,书籍管理栏目、网上购物管理及模块管理。然后进行了系统总体设计,我们采用采用B/S模式实现,分为三个层次。用户界面层:界面层为客户端浏览器提供对应用程序的访问,这一层是为用户提供操作接口而实现的。
业务逻辑层:包含各种业务规则和逻辑的实现,业务规则完成如匿名用户书籍查找,用户登录时进行身份认证等。数据访问层:数据访问层为业务逻辑层提供数据服务,首先设计了一个连接数据库的类,然后封装了对数据库的数据进行的操作。访问数据库的结果供业务逻辑层使用。
现在我谈一下自己做系统总体设计的体会。系统总体设计的好坏直接影响后面的编码过程。刚开始我们的总体设计不是很完善,导致在具体实现时,我们的模块划分的不是很好,数据表的设计也不能很好的反映现实情况。后来我们又完善了系统的总体设计,对各个模块进行了详细的规划,系统层次显得分明,编码也相对容易一些。
最主要的是数据库设计与实现。在设计一个数据库时,首先应该仔细研究业务需求。雨雾需求将直接决定表的设计。表之间可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一原始单据对应多个实体,或多原始单据对应一个实体。明确这种对应关系后,对我们设计录入界面大有好处。数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。表的设计应该遵循“三少”原则:数据库中表的个数尽量少,一个表中组合主键的字段个数尽量少,表中的字段个数尽量少。但是必须要能反映现实情况。我一共设计了四个表,书籍信息表、用户登录表、银行卡表和订单表。四个表的详细设计在上面数据库的设计中有说明,各表的关系也用E-R图展示出来了,这里就不在赘述了。
最后我觉得理论知识很必要,实践也不可缺少,只有在实践中才能更清楚的了解自己对理论知识的掌握程度,才能学以致用,把所学的知识运用到实践中去。