数据库设计是软件开发的灵魂和基础,是整个网站成功的关键所在,是开发高品质应用的前提。
4.4.1 代码设计
关于表的取名格式为tb_xxxx。其中:tb —网站数据库代号xxxx—库表标识名。
4.4.2 数据库设计
4.4.2.1 概念模型设计
由需求分析得到本网站的E-R图,要正确确定关联关系。关系型数据库是通过表间某些列的逻辑关系决定两个实体间的关联关系的,正确确定关联关系和表的键至关重要。
局部E-R图如下:
图4-2订单信息实体E-R图
Fig 4-2 Order information entities E-R diagram
图4-3商品实体E-R图
Fig 4-3 E-R diagram physical goods
图4-4商品小分类实体E-R图
Fig 4-4 Classification of goods of small entities, E-R diagram
图4-5商品大分类实体E-R图
Fig4-5 The major categories of goods entity E-R diagram
图4-6会员实体E-R图
Fig 4-6 E-R diagram of Member entity
图4-7管理员实体E-R图
Fig 4-7 Administrator E-R diagram entities
图4-8订单表实体E-R图
Fig 4-8 Order Form E-R diagram entities
整体E-R图如下:
图4-9诚欣购物网站整体E-R图
Fig 4-9 Cheng Yan shopping site as a whole E-R diagram
4.4.2.2 关系模式设计
由网站的概念模型得出关系模式。主要原则及实现方法如下:
1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。
2)实体的联系转换为关系模式时,应首先确定该联系的类型,再确定相应的键:
a)若关系的类型为1:1,则每个实体的键均为该关系的侯选键,可二者择一为该联系的键。
b)若关系的类型为1:n,则应把一端实体的键移到n端,与n端实体的键共同组成该联系的键。
c)如果为弱实体集,可为其增加一个强制属性作为键。
d)若关系的类型为m:n,则该联系的键为两个实体的键的复合,即该关系的键一定为复合键。
3)进行规范化处理,求出关系模式中的最小依赖集,并规范到三范式。
依据上述原则,得出本网站的关系模式为:
公告信息表(自动编号 ,公告标题 ,公告内容 ,发布公告时间)
商品大类别信息表(自动编号,大类别名称,创建时间)
商品小分类信息表(自动编号,属于大类别名称,小分类名称,创建时间)
商品信息表(自动编号,所属大类别,所属小类别,商品名称,生产厂商,简介,创建时间,商品定价,初始化特价,销售数量,商品图片,是否特价)
友情链接信息表(自动编号,网站名称,网站链接地址)
后台管理员信息表(自动编号,用户名,密码,姓名,是否为超级管理员)
会员信息表(自动编号,会员名称,会员密码,真实姓名,年龄,职业,E-mail地址,找回密码问题,答案)
订单信息主表(自动编号,订单编号,会员名称,真实姓名,联系地址,联系电话,付款方式,运送方式,备注信息,是否出货,订货时间)
订单信息明细主表(自动编号,订单编号,商品编号,商品价格,商品数量)
其中加下划线的为主键。
严格而言,关系模式的内容应为:
R(U,D,DOM,F)
其中,R为关系名,U为组成该关系模式的属性名集合,D为属性组U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。设计过程中仅要求给出前两项,即R,U,其它可作为中间优化过程的依据及结果的来源而省略。
4.4.2.3 物理数据库设计
这里主要规定各关系的名称、各列的数据类型、长度、小数位、完整性约束等。
1、完整性约束。
完整性包括实体完整性和关联完整性和用户定义完整性。
a) 实体完整性约束有如下几种:
1)主属性非空。
2)列值非空。
3)列值唯一。
4)检查列值是否满足一个布尔表达式。
5)检查各列之间是否满足一个布尔表达式。
b) 关联完整性约束有如下几种:
1)外码是否可以接受空值。
2)删除参照关系的列时的考虑。
3)修改参照关系的主码时的考虑。
c)用户定义的完整性约束:
1)一些企业规则。
2)常识性规则。
2、表的取名要规范。
tb_xxxx
其中:
tb ——网站数据库代号
xxxx——库表标识名
表的建立,必须对comments进行中文注释,说明该表的中文名称、基本用途、主键字段、外键字段。
表4-10子模块代号
Tab 4-10 code-named sub-module
模块名称 | 代号 |
公告信息表 | 01 |
商品大类别信息表 | 02 |
商品小分类信息表 | 03 |
商品信息表 | 04 |
友情链接信息表 | 05 |
后台管理员信息表 | 06 |
会员信息表 | 07 |
订单信息主表 | 08 |
订单信息明细主表 | 09 |
3、规范化处理。数据库设计应尽力满足3NF,即不存在多值依赖、不存在部分依赖、不存在传递依赖,在极特殊情况下,为加快数据录入速度,显著提高查询速度等情况下,允许部分数据非规范化,存在一定程度的数据冗余,但必须非多值依赖。
4、数据库表存储设计。
表4-11公告信息表
Tab 4-11 Announcement Information Form
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
公告标题 | name | varchar(20) | 空 | |
公告内容 | content | text | 空 | |
发布公告时间 | issueTime | smalldatetime | 空 |
表4-12商品大类别信息表
Tab 4-12 Information Form commodity broad categories
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
大类别名称 | bigName | varchar (50) | 空 | |
创建时间 | creaTime | smalldatetime | 空 |
表4-13商品小分类信息表
Tab 4-13 Primary Classification Information Form commodity
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
属于大类别名称 | bigId | int | 空 | |
小分类名称 | smallName | varchar (50) | 空 | |
创建时间 | creaTime | smalldatetime | 空 |
表4-14商品信息表
Tab 4-14Information Form commodity
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
所属大类别 | bigId | int | 非空 | |
所属小类别 | smallId | int | 非空 | |
商品名称 | goodsName | varchar (50) | 空 | |
生产厂商 | goodsFrom | varchar (50) | 空 | |
简介 | introduce | text | 空 | |
创建时间 | creaTime | smalldatetime | 空 | |
商品定价 | nowPrice | money | 空 | |
初始化特价 | freePrice | money | 空 | |
销售数量 | number | int | 空 | |
商品图片 | pirture | varchar (50) | 空 | |
是否特价 | mark | mark | 空 |
表4-15友情链接信息表
Tab 4-15Link Information Table
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
网站名称 | linkName | varchar (50) | 空 | |
网站链接地址 | linkAddress | varchar (50) | 空 |
表4-16后台管理员信息表
Tab 4-16 Background Information Sheet Manager
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
用户名 | account | varchar (50) | 空 | |
密码 | password | int | 空 | |
姓名 | name | varchar (50) | 空 | |
是否为超级管理员 | sign | bit | 空 |
表4-17会员信息表
Tab 4-17 Membership Information Form
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | |
会员名称 | name | varchar (50) | 非空 | 是 |
会员密码 | password | varchar (50) | 空 | |
真实姓名 | reallyName | varchar (10) | 空 | |
年龄 | age | int | 空 | |
职业 | profession | varchar (50) | 空 | |
E-mail地址 | | varchar (50) | 空 | |
找回密码问题 | question | varchar (50) | 空 | |
答案 | result | varchar (50) | 空 |
表4-18订单信息主表
Tab 4-18 the main table order information
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | |
订单编号 | number | varchar (50) | 非空 | 是 |
会员名称 | name | varchar (50) | 空 | |
真实姓名 | reallyName | varchar (50) | 空 | |
联系地址 | address | varchar (50) | 空 | |
联系电话 | tel | varchar (50) | 空 | |
付款方式 | setMoney | varchar (50) | 空 | |
运送方式 | post | varchar (50) | 空 | |
备注信息 | bz | text | 空 | |
是否出货 | sign | bit | 空 | |
订货时间 | creaTime | smalldatetime | 空 |
表4-19订单信息明细主表
Tab 4-19 details the main table order information
说明 | 列名 | 类型 | 可否空 | 主键 |
自动编号 | id | int | 非空 | 是 |
订单编号 | orderNumber | varchar (50) | 空 | |
商品编号 | goodsId | int | 空 | |
商品价格 | price | float | 空 | |
商品数量 | number | int | 空 |
4.5 诚欣购物网站输入、输出设计
4.5.1 输入设计
输入设计担负着将网站外的数据以一定的格式送入计算机的任务,输入设计的一条重要原则是确保网站输入的信息准确无误。
输入设计 编号:001
输入名称:用户信息 | 输入设备和介质:键盘,鼠标 |
输入源:前台用户登录模块 | 输入时间个频率:每天多次 |
输入信息量 | 共享范围:本网站使用 |
输入格式及内容:
数据项名称 | 类型 | 长度 | 备注 |
会员名称 | varchar | 50 | 必填项 |
会员密码 | varchar | 50 | 必填项 |
真实姓名 | varchar | 10 | 必填项 |
年龄 | int | 必填项 | |
职业 | varchar | 50 | 必填项 |
E-mail地址 | varchar | 50 | 必填项 |
找回密码问题 | varchar | 50 | 必填项 |
答案 | varchar | 50 | 必填项 |
输入设计 编号:002
输入名称:填写购物订单信息 | 输入设备和介质:键盘,鼠标 |
输入源:前台购物车页面 | 输入时间个频率:每天多次 |
输入信息量 | 共享范围:本网站使用 |
输入格式及内容:
数据项名称 | 类型 | 长度 | 备注 |
会员名称 | varchar | 50 | 网站自动获取 |
真实姓名 | varchar | 50 | 网站自动获取 |
联系地址 | varchar | 50 | |
联系电话 | varchar | 50 | |
付款方式 | varchar | 50 | 必选项 |
运送方式 | varchar | 50 | 必选项 |
备注信息 | text |
输入设计: 编号:003
输入名称:商品管理信息 | 输入设备和介质:键盘,鼠标 |
输入源:后台商品设置页面 | 输入时间个频率:每天多次 |
输入信息量 | 共享范围:本网站使用 |
输入格式及内容:
数据项名称 | 类型 | 长度 | 备注 |
所属大类别 | int | 必选项 | |
所属小类别 | int | 必选项 | |
商品名称 | varchar | 50 | 必填项 |
生产厂商 | varchar | 50 | 必填项 |
商品定价 | money | 必填项 | |
商品图片 | varchar | 50 | 必填项 |
简介 | text | 必填项 |
4.5.2 输出设计
输出设计 编号001
输出名称: 用户登录信息 | 输出设备和介质:显示器.IE浏览器. |
输出类型: 网页显示 | 输出时间和步骤:登录即显示 |
输出格式和内容:
数据项名称 | 类型 | 长度 |
会员名称 | varchar | 50 |
真实姓名 | varchar | 10 |
输出设计 编号:002
输出名称: 订单详细信息 | 输出设备和介质:显示器.IE浏览器 |
输出类型: 网页显示 | 输出时间和步骤:管理员登录即显示 |
输出格式和内容:
数据项名称 | 类型 | 长度 |
会员名称 | varchar | 50 |
真实姓名 | varchar | 50 |
联系地址 | varchar | 50 |
联系电话 | varchar | 50 |
付款方式 | varchar | 50 |
运送方式 | varchar | 50 |
备注信息 | text | |
商品名称 | varchar | 50 |
商品数量 | int | |
商品定价 | money |
输出设计 编号:003
输出名称: 商品相关信息 | 输出设备和介质:显示器.IE浏览器 |
输出类型: 网页显示 | 输出时间和步骤:访问本网站或会员登录时显示 |
输出格式和内容:
数据项名称 | 类型 | 长度 |
所属大类别 | int | |
商品名称 | varchar | 50 |
商品定价 | money | |
商品图片 | varchar | 50 |
简介 | text |