药品进销存管理方案计划系统数据库设计.docx

上传人:b****6 文档编号:4425451 上传时间:2022-12-01 格式:DOCX 页数:22 大小:251.98KB
下载 相关 举报
药品进销存管理方案计划系统数据库设计.docx_第1页
第1页 / 共22页
药品进销存管理方案计划系统数据库设计.docx_第2页
第2页 / 共22页
药品进销存管理方案计划系统数据库设计.docx_第3页
第3页 / 共22页
药品进销存管理方案计划系统数据库设计.docx_第4页
第4页 / 共22页
药品进销存管理方案计划系统数据库设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

药品进销存管理方案计划系统数据库设计.docx

《药品进销存管理方案计划系统数据库设计.docx》由会员分享,可在线阅读,更多相关《药品进销存管理方案计划系统数据库设计.docx(22页珍藏版)》请在冰豆网上搜索。

药品进销存管理方案计划系统数据库设计.docx

药品进销存管理方案计划系统数据库设计

药品进销存管理系统数据库设计

一、基本分析

1.1数据库环境说明

采用的数据库系统:

mysql

编程工具:

MyEclipse8.0

数据库建模工具:

powerdesigner15

1.2基本功能分析

本设计要实现的是药品进销存管理系统,在设计该系统时,应尽可能贴近实际、便于用户操作.系统在实现上应该具有如下功能:

1.系统要提示用户必须输入正确的用户名和密码才能进入系统.

2.其功能模块图如下:

 

二、概念设计

在需求分析的基础上,我们对药品进销存管理系统有了一定的了解。

在分析设计概念模型时,首先找出模型所需的实体,然后找到各实体之间的关系,画出E—R模型图。

2.1、实体及其间的关系设计

对于药品进销存系统,我们设计了药品,客户,供货商,仓库,操作员四个实体。

结合实际情况及对数据库设计的方便,各个实体之间的关系如下:

供货商和药品之间应该是存在采购关联,它们之间为多对多关系。

仓库,药品之间存在存储关联,它们之间为多对多关系。

药品,客户之间存在销售关联,它们之间为多对多关系。

操作员,仓库之间存在药品入库和出库关联,它们之间为多对多关系。

2.2E-R模型图的设计

根据较为详细的需求分析,我们设计出了以下E-R模型图如下.

三、逻辑设计

逻辑结构设计的目的是将ER模型向关系模型转换,注意转换时关系的主键、外键的设置以保持原有的ER模型中实体与实体之间的关系,另外还应当进行规范化处理以消除数据冗余。

3.1ER图向关系模型的转化(主键标志为

存在冗余的关系,根我们把它拆分成两张或更多张表

3.2、E-R图转换成关系模型所遵循的原则

我们把E-R图转换成关系模型所遵循的原则:

1)每一个实体类型转换成一个关系模式。

如实体药品,客户,供货商,仓库,操作员,都可以转化成对应的一个关系模式。

关系模型的主键是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

操作员信息表

各表信息

表名

tb_buy_detaile

列名

数据类型(精度范围)

空/非空

约束条件

名称

rklsh

int

notnull

primarykey

入库流水号码

rkdjh

varchar(20)

入库单据号

ypbh

varchar(20)

药品编号

rksl

int

入库数量

rkdj

float

入库单价

rkje

float

入库金额

rkrq

datetime

入库日期

kcsl

int

库存数量

kcsts

char(4)

库存状态

补充说明

表名

tb_buy_main

列名

数据类型(精度范围)

空/非空

约束条件

名称

rkdjh

varchar(20)

notnull

primarykey

入库单据号

pzs

int

品种数量

rksl

int

入库数量

rkje

float

入库金额

rkrq

datetime

入库日期

jbr

varbinary(10)

经办人

sts

varchar

(2)

库存状态

gysbh

varchar(20)

供应商编号

补充说明

表名

tb_client_hkqk

列名

数据类型(精度范围)

空/非空

约束条件

名称

hklsh

varchar(20)

notnull

primarykey

回款流水号

xslsh

int

销售流水号

khbh

varchar(20)

客户编号

hkrq

datetime

回款日期

qkje

decimal

(2)

欠款金额

skhj

decimal

(2)

实收金额

ljye

decimal

(2)

累计余额

补充说明

表名

tb_client_jbqkb

列名

数据类型(精度范围)

空/非空

约束条件

名称

khbh

varchar(20)

notnull

primarykey

客户编号

khmc

varchar(80)

客户名称

pym

varchar(10)

拼音编码

khdz

varchar(80)

客户地址

ssdq

varchar(40)

所属地区

yzbm

varchar(10)

邮政编码

tel

varchar(20)

联系电话

lxr

varchar(10)

联系人

khyh

varchar(40)

开户银行

khzh

varchar(20)

开户账号

补充说明

表名

tb_gys_jbqkb

列名

数据类型(精度范围)

空/非空

约束条件

名称

gysbh

varchar(20)

notnull

primarykey

供应商编号

gysmc

varchar(80)

供应商名称

pym

varchar(10)

拼音编码

gysdz

varchar(80)

供应商地址

ssdq

varchar(40)

所属地区

yzbm

varchar(10)

邮政编码

tel

varchar(20)

联系电话

lxr

varchar(10)

联系人

khyh

varchar(40)

开户银行

khzh

varchar(20)

开户账号

补充说明

表名

tb_medicine_jbqkb

列名

数据类型(精度范围)

空/非空

约束条件

名称

ypbh

varchar(20)

notnull

primarykey

药品编号

yptm

varchar(20)

药品条码

ypmc

varchar(80)

药品名称

tym

varchar(20)

通用名称

pym

varchar(10)

拼音码

dw

varchar(4)

单位

gg

varchar(20)

规格

jx

varchar(10)

剂型

cd

varchar(20)

产地

bzsl

int

包装数量

yxq

varchar(10)

有效期

zlbz

varchar(20)

质量标准

jyfs

varchar(8)

经营方式

ph

varchar(10)

批号

lsjg

float

零售价格

jhjg

float

进货价格

pfjg

float

批发价格

yplb

varchar(20)

药品类名

ylbh

varchar(10)

医疗保险编号

补充说明

表名

tb_sell_detaile

列名

数据类型(精度范围)

空/非空

约束条件

名称

xslsh

int

notnull

primarykey

销售流水号码

ypbh

varchar(20)

药品编号

xsdjh

varchar(20)

销售单据号

xssl

int

销售数量

xsdj

float

销售单价

xsje

float

销售金额

xsrq

datetime

销售日期

thsts

char(10)

退货状态

补充说明

表名

tb_sell_detaile_th

列名

数据类型(精度范围)

空/非空

约束条件

名称

xslsh

varchar(50)

notnull

primarykey

销售流水号

ypbh

varchar(50)

药品编号

thsl

int

退库数量

thrq

datetime

退货日期

thje

float

退货金额

jbr

varchar(50)

经办人

补充说明

表名

tb_sell_main

列名

数据类型(精度范围)

空/非空

约束条件

名称

xsdjh

varchar(20)

notnull

primarykey

销售单据号

khbh

varchar(20)

客户编号

pzs

int

品种数量

xszs

int

销售总数

xsje

float

销售金额

xszk

float

销售折扣

ysje

float

应收金额

ssje

float

实收金额

wsje

float

未收金额

xsrq

datetime

销售日期

skfs

varchar(10)

收款方式

jbr

varchar(10)

经办人

qssts

varchar

(2)

清算状态

hkje

float

回款金额

hkrq

datetime

回款日期

补充说明

表名

tb_stock

列名

数据类型(精度范围)

空/非空

约束条件

名称

ypbh

varchar(50)

notnull

primarykey

药品编号

rksl

int

入库数量

xssl

int

销售数量

kcsl

int

库存数量

pdsl

int

盘点数量

pdrq

datetime

盘点日期

补充说明

表名

tb_username

列名

数据类型(精度范围)

空/非空

约束条件

名称

userid

varchar(20)

notnull

primarykey

用户ID

username

varchar(50)

用户名

password

varchar(50)

密码

passconf

varchar(50)

确认密码

补充说明

 

四、物理设计

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)

);

/*==============================================================*/

/*Table:

tb_buy_main*/

/*==============================================================*/

createtabletb_buy_main

rkdjhvarchar(20)notnull,

pzsint,

rkslint,

rkjefloat,

rkrqdatetime,

jbrvarbinary(10),

stsvarchar

(2),

gysbhvarchar(20),

primarykey(rkdjh)

);

/*==============================================================*/

/*Table:

tb_client_hkqk*/

/*==============================================================*/

createtabletb_client_hkqk

hklshvarchar(20)notnull,

xslshint,

khbhvarchar(20),

hkrqdatetime,

qkjedecimal(2,0),

skhjdecimal(2,0),

ljyedecimal(2,0),

primarykey(hklsh)

);

/*==============================================================*/

/*Table:

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)

);

/*==============================================================*/

/*Table:

tb_gys_jbqkb*/

/*==============================================================*/

createtabletb_gys_jbqkb

gysbhvarchar(20)notnull,

gysmcvarchar(80),

pymvarchar(10),

gysdzvarchar(80),

ssdqvarchar(40),

yzbmvarchar(10),

telvarchar(20),

lxrvarchar(10),

khyhvarchar(40),

khzhvarchar(20),

primarykey(gysbh)

);

/*==============================================================*/

/*Table:

tb_medicine_jbqkb*/

/*==============================================================*/

createtabletb_medicine_jbqkb

ypbhvarchar(20)notnull,

yptmvarchar(20),

ypmcvarchar(80),

tymvarchar(20),

pymvarchar(10),

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)

);

/*==============================================================*/

/*Table:

tb_sell_detaile*/

/*==============================================================*/

createtabletb_sell_detaile

xslshintnotnullauto_increment,

ypbhvarchar(20),

xsdjhvarchar(20),

xsslint,

xsdjfloat,

xsjefloat,

xsrqdatetime,

thstschar(10),

primarykey(xslsh)

);

/*==============================================================*/

/*Table:

tb_sell_detaile_th*/

/*==============================================================*/

createtabletb_sell_detaile_th

xslshvarchar(50)notnull,

ypbhvarchar(50),

thslint,

thrqdatetime,

thjefloat,

jbrvarchar(50),

primarykey(xslsh)

);

/*==============================================================*/

/*Table:

tb_sell_main*/

/*==============================================================*/

createtabletb_sell_main

xsdjhvarchar(20)notnull,

khbhvarchar(20),

pzsint,

xszsint,

xsjefloat,

xszkfloat,

ysjefloat,

ssjefloat,

wsjefloat,

xsrqdatetime,

skfsvarchar(10),

jbrvarchar(10),

qsstsvarchar

(2),

hkjefloat,

hkrqdatetime,

primarykey(xsdjh)

);

/*==========================

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1