药品进销存管理系统数据库设计Word格式.docx
《药品进销存管理系统数据库设计Word格式.docx》由会员分享,可在线阅读,更多相关《药品进销存管理系统数据库设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
关系模型的主键是E-R模型的标识符,其他属性一样。
2)一个联系可转化为一个关系模式,那么,两端关系的标识符及该联系属性为关系的属性,而关系的标识符为两端实体标识符的组合。
3)我们还涉及到了引用完整性约束,也就是外键的约束,外码的约束贯穿着我们设计的始终,它把我们建立的关系紧密的联系在了一起。
4)我们对关系模式进行了消除数据冗余的处理。
应符合第三范式,不允许出现传递依赖、冗余、异常等等。
在逻辑设计中形成了关系表后需要对关系作规范化处理,使每个关系表至少满足第三范式的要求。
对违反第三范式的关系我们进行了分析并作了相应的调整。
对各关系模式之间的数据依赖进行了极小化处理,消除了冗余。
对违反第三范式的关系模式进行了必要的分解和合并。
3.3表汇总
表名
功能说明
tb_buy_detaile
药品采购明细表
tb_buy_main
药品采购主表
tb_client_hkqk
客户回款情况表
tb_client_jbqkb
客户基本情况表
tb_gys_jbqkb
供应商基本情况表
tb_medicine_jbqkb
药品基本情况表
tb_sell_detaile
药品销售明细表
tb_sell_detaile_th
药品销售退货表
tb_sell_main
药品销售主表
tb_stock
药品库存盘点信息表
tb_username
操作员信息表
各表信息
列名
数据类型(精度范围)
空/非空
约束条件
名称
rklsh
int
notnull
primarykey
入库流水号码
rkdjh
varchar(20)
入库单据号
ypbh
药品编号
rksl
int
入库数量
rkdj
float
入库单价
rkje
入库金额
rkrq
datetime
入库日期
kcsl
库存数量
kcsts
char(4)
库存状态
补充说明
tb_buy_main
varchar(20)
pzs
品种数量
jbr
varbinary(10)
经办人
sts
varchar
(2)
gysbh
供应商编号
tb_client_hkqk
hklsh
回款流水号
xslsh
销售流水号
khbh
客户编号
hkrq
回款日期
qkje
decimal
(2)
欠款金额
skhj
实收金额
ljye
累计余额
khmc
varchar(80)
客户名称
pym
varchar(10)
拼音编码
khdz
客户地址
ssdq
varchar(40)
所属地区
yzbm
邮政编码
tel
联系电话
lxr
联系人
khyh
开户银行
khzh
开户账号
tb_gys_jbqkb
gysmc
供应商名称
gysdz
供应商地址
yptm
药品条码
ypmc
药品名称
tym
通用名称
拼音码
dw
varchar(4)
单位
gg
规格
jx
剂型
cd
产地
bzsl
包装数量
yxq
有效期
zlbz
质量标准
jyfs
varchar(8)
经营方式
ph
批号
lsjg
零售价格
jhjg
进货价格
pfjg
批发价格
yplb
药品类名
ylbh
医疗保险编号
notnull
销售流水号码
xsdjh
销售单据号
xssl
销售数量
xsdj
销售单价
xsje
销售金额
xsrq
销售日期
thsts
char(10)
退货状态
varchar(50)
varchar(50)
thsl
退库数量
thrq
退货日期
thje
退货金额
xszs
销售总数
xszk
销售折扣
ysje
应收金额
ssje
wsje
未收金额
skfs
收款方式
qssts
清算状态
hkje
回款金额
pdsl
盘点数量
pdrq
盘点日期
tb_username
userid
用户ID
username
用户名
password
密码
passconf
确认密码
四、物理设计
4.1索引设计
关系属性A上的索引是一种数据结构,它可以提高查找在属性A上具有某个特定值的元组的效率。
索引通常有助于包含有属性A和常量的查询,但当关系变化很大时,通过扫描关系中所有的元组来找出那些匹配给定条件的元组的操作方式代价太高。
故我们设计索引需要对下两方面折中选择。
首先,对某个属性使用索引能极大的提高对该属性值的检索效率,使用该属性时,还可以加快连接。
其次,对关系上某个属性的索引会使得对关系的插入、删除、修改变得复杂和费时。
因此经过分析本系统的功能和需求可知,本系统的药品表中的记录可能相当的庞大,而且基于药品名称或编码的查询和修改相当的频繁,加之在数据库更新和维护过程中对供货商的更新和查询也比较的频繁,而且供货商的数量也可能比较大,综合考量后应为本系统建立如下3个索引,以达到操作的便捷和系统功能的优化。
各表中建立索引的表项:
createuniqueindexkhbh_indexontb_client_jbqkb(khbh);
createuniqueindexgysbh_indexontb_gys_jbqkb(gysbh);
createuniqueindexypbh_indexontb_medicine_jbqkb(ypbh);
createuniqueindexuserid_indexontb_username(userid);
五、安全性设计
角色与权限
设立两种级别用户Administrator,Superuser.对每种类型的用户设置不同的权限.
Administrator:
提供对系统的实际操作功能(适于仓库管理人员)
Superuser:
拥有系统的一切权限(适于总经理,系统维护管理人员)
六、用SQL实现设计
经数据库建模后,由模型导出数据库的SQL语言,将SQL语言导入到MySQL数据库中建立所有的数据表。
/*==============================================================*/
/*Table:
tb_buy_detaile*/
createtabletb_buy_detaile
(
rklshintnotnullauto_increment,
rkdjhvarchar(20),
ypbhvarchar(20),
rkslint,
rkdjfloat,
rkjefloat,
rkrqdatetime,
kcslint,
kcstschar(4),
primarykey(rklsh)
);
tb_buy_main*/
createtabletb_buy_main
rkdjhvarchar(20)notnull,
pzsint,
jbrvarbinary(10),
stsvarchar
(2),
gysbhvarchar(20),
primarykey(rkdjh)
tb_client_hkqk*/
createtabletb_client_hkqk
hklshvarchar(20)notnull,
xslshint,
khbhvarchar(20),
hkrqdatetime,
qkjedecimal(2,0),
skhjdecimal(2,0),
ljyedecimal(2,0),
primarykey(hklsh)
tb_client_jbqkb*/
createtabletb_client_jbqkb
khbhvarchar(20)notnull,
khmcvarchar(80),
pymvarchar(10),
khdzvarchar(80),
ssdqvarchar(40),
yzbmvarchar(10),
telvarchar(20),
lxrvarchar(10),
khyhvarchar(40),
khzhvarchar(20),
primarykey(khbh)
tb_gys_jbqkb*/
createtabletb_gys_jbqkb
gysbhvarchar(20)notnull,
gysmcvarchar(80),
gysdzvarchar(80),
primarykey(gysbh)
tb_medicine_jbqkb*/
createtabletb_medicine_jbqkb
ypbhvarchar(20)notnull,
yptmvarchar(20),
ypmcvarchar(80),
tymvarchar(20),
dwvarchar(4),
ggvarchar(20),
jxvarchar(10),
cdvarchar(20),
bzslint,
yxqvarchar(10),
zlbzvarchar(20),
jyfsvarchar(8),
phvarchar(10),
lsjgfloat,
jhjgfloat,
pfjgfloat,
yplbvarchar(20),
ylbhvarchar(10),
primarykey(ypbh)
tb_sell_detaile*/
createtabletb_sell_detaile
xslshintnotnullauto_increment,
xsdjhvarchar(20),
xsslint,
xsdjfloat,
xsjefloat,
xsrqdatetime,
thstschar(10),
primarykey(xslsh)
tb_sell_detaile_th*/
createtabletb_sell_detaile_th
xslshvarchar(50)notnull,
ypbhvarchar(50),
thslint,
thrqdatetime,
thjefloat,
jbrvarchar(50),
tb_sell_main*/
createtabletb_sell_main
xsdjhvarchar(20)notnull,
xszsint,
xszkfloat,
ysjefloat,
ssjefloat,
wsjefloat,
skfsvarchar(10),
jbrvarchar(10),
qsstsvarchar
(2),
hkjefloat,
primarykey(xsdjh)
/*==================================================