求数据库建模过程。
现在想做一个小程序,结果发现数据库设计的不合理。重新设计了好几次,都不行。每次数据库的不合理都会导致代码的调整。求高手知道,一个项目当前,我改如何建立数据库模型,其步骤如何。请以图书管理系统为列举个例子!描述其过程。
------解决方案--------------------
--一个例子,图片可能看不见
超市POS管理系统
数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构的设计好坏将直接对应用系统的效率以及实现的效果产生影响。数据库设计一般包括以下四个部分:数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
一、数据库需求分析
通过对超市管理工作过程的内容和数据流图分析,设计如下面的数据项和数据结构。
1、员工信息,包括的数据项有:员工编号,姓名,性别,职务,口令,权限级别、身份证号,所属部门编号等。
2、部门信息,包括的数据项有:部门编号,部门名称。
3、供应商信息,包括的数据项有:供应商编号,供应商名称,地址,邮政编码,电话号码,税号,银行帐号,开户银行,联系人,备注等。
4、会员信息,包括的数据项有:会员编号,姓名,性别,身份证号,消费总金额,积分等。
5、入库信息,包括的数据项有:入库编号,入库日期,商品编号,计量单位,入库价格,销售价格,数量,总金额,供应商编号,业务员编号等。
6、商品信息,包括的数据项有:商品编号,所属类别,数量,单价,商品名称等。
7、销售出货单主信息,包括的数据项有:销售日期,总金额,是否现金,是否会员,会员编号、收银号编号等。
8、销售出货单子信息,包括的数据项有:商品编号,数量,单价,折扣比例,金额等。
二、数据库概念结构设计
根据上面设计规划出的实体,我们对各个实体具体的描述E-R图如下:
图1 员工信息E-R图
图2 部门信息E-R图
图3 入库信息E-R图
图4 商品信息E-R图
图5 销售出货单主信息E-R图
图6 销售出货单子信息E-R图
图7 会员信息E-R图
图8 供应商信息E-R图
实体与实体之间的关系E-R图:
三、数据库逻辑结构设计
员工信息表
字段名 数据类型 长度 说明 描述
Ygbh Char 8 不空,主键 员工编号
Name Char 8 不空 姓名
Sex Char 2 不空‘男’、‘女’ 性别
Zw Char 10 不空 职务
Kl varChar 20 不空 口令
Qxjb Char 1 不空 权限级别
Sfzh Char 18 不空,唯一约束 身份证号
ssbmbh char 4 不空,外键 所属部门编号
商品信息
字段名 数据类型 长度 说明 描述
Spbh char 8 不空,主键 商品编号
Spmc varchar 20 不空 商品名称
Sslb char 8 不空 所属类别
Jg money 8 不空 价格
sl int 4 不空 数量
部门信息表
字段名 数据类型 长度 说明 描述
bmbh char 8 不空,主键 部门编号
bmmc char 4 不空 部门名称
供应商信息表
字段名 数据类型 长度 说明 描述
Gysbh Char 8 不空,主键 供应商编号
Gysmc Char 8 不空 供应商名称
Dz varChar 20 不空 地址
Yzbm Char 6 不空 邮政编码
Dhhm varchar 15 不空 电话号码
Sh varChar 3 不空 税号
Yhzh varChar 20 不空 银行帐号
Khyh Char 8 不空 开户银行
Lxr Char 8 不空 联系人
beizhu text 16 备注
会员信息表
字段名 数据类型 长度 说明 描述
Hybh Char 8 不空,主键 会员编号
Name Char 6 不空 姓名
Sex Char 2 不空,’男’、’女’ 性别
Sfzh varChar 20 不空 身份证号
xfzje money 8 不空 消费总金额
jf int 4 不空 积分
入库信息表
字段名 数据类型 长度 说明 描述
Rkbh char 8 不空,主键 入库编号
Rkrq Datetime 8 不空 入库日期
Spbh char 8 不空,外键 商品编号
Jldw Char 2 不空 计量单位
Rkjg Money 8 不空 入库价格
Xsjg Money 8 不空 销售价格
Sl int 4 不空 数量
Zje Money 8 不空 总金额
Gysbh char 8 不空,外键 供应商编号
ywybh char 8 不空,外键 业务员编号
库存信息表
字段名 数据类型 长度 说明 描述
kcxxbh char 8 不空,主键 库存信息编号
Spbh char 8 不空,外键 商品编号
kcl int 4 不空 库存量
销售出货单主信息
字段名 数据类型 长度 说明 描述
Xsrq datetime 8 不空 销售日期
Zje Money 8 不空 总金额
Sfxj Char 2 不空 是否现金
Sfhy char 2 可为空 是否会员
Hybh Char 8 不空,外键 会员编号
Syybh char 8 不空,外键 收银号编号
销售出货单子信息
字段名 数据类型 长度 说明 描述
Spbh char 8 不空,外键 商品编号
Sl int 4 不空 数量
Dj money 8 不空 单价
Zkbl char 10 不空 折扣比例
Je money 8 不空 金额
四、数据库物理结构实现
根据以上的逻辑分析所得到表的关系,我们使用T-SQL语言设计得到数据库和数据表。
1.create database glxt
on
( name=pos_dat,
filename='D:\pos_dat.mdf',
size=5,
maxsize=20,
filegrowth=1)
LOG on