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

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

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

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

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

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

 

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

 

一、基本分析

 

1.1数据库环境说明

 

采用的数据库系统:

mysql

 

编程工具:

MyEclipse8.0

 

数据库建模工具:

powerdesigner15

 

1.2基本功能分析

 

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

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

2.其功能模块图如下:

 

药品进销存管理系统

 

系统登录用户管理基本信息业务管理业务查询系统管理

 

增加用户药品情况药品采购基本信息系统退出

 

用户维护客户情况药品销售入库明细数据库备份

 

供应商情况库存盘点销售明细

 

销售退货回款信息

 

客户回款

 

二、概念设计

 

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

在分析

 

设计概念模型时,首先找出模型所需的实体,然后找到各实体之间的关系,画出

 

E—R模型图。

 

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

 

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

 

实体。

 

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

 

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

 

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

 

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

 

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

 

2.2E-R模型图的设计

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

 

药品

药品编号Variablecharacters(20)

药品名称Variablecharacters(80)0,n

单位Variablecharacters(4)

有效期Variablecharacters(10)

零售价格Float

Identifier_1

0,n

0,n

 

存储

 

采购

入库流水号码Variablecharacters(20)入库单据号Variablecharacters(20)药品编号Variablecharacters(20)入库数量Integer

入库单价Float

...

 

0,n

 

供应商

供应商编号Variablecharacters(20)

供应商名称Variablecharacters(80)

拼音编码Variablecharacters(10)

供应商地址Variablecharacters(80)

Identifier_1

 

销售

客户

销售流水号码Variablecharacters(20)

客户编号Variablecharacters(20)

销售单据号Variablecharacters(20)

0,n客户名称

Variablecharacters(80)

药品编号

Variablecharacters(20)

客户地址

Variablecharacters(80)

销售数量

Integer

Identifier_1

销售单价

Float

...

...

 

0,n

仓库

药品编号Variablecharacters(50)

入库数量

Integer

销售数量

Integer

0,n

库存数量

Integer

盘点数量

Integer

盘点日期

Date

Identifier_1

出库

0,n

 

入库

0,n

 

0,n用户

用户IDVariablecharacters(20)

用户姓名Variablecharacters(50)

用户口令Variablecharacters(50)

用户权限Variablecharacters(50)

Identifier_1

 

三、逻辑设计

逻辑结构设计的目的是将ER模型向关系模型转换,注意转换时关系的主键、

 

外键的设置以保持原有的ER模型中实体与实体之间的关系,另外还应当进行规

 

范化处理以消除数据冗余。

 

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

 

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

 

tb_medicine_jbqkb

ypbhvarchar(20)

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

jhjgfloatpfjgfloat

yplbvarchar(20)ylbhvarchar(10)

 

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

入库单价

入库金额

rkjefloat

 

入库日期

rkrqdatetime

 

库存数量

kcslint

库存状态

kcstschar(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

销售流水号

 

客户编号

khbhvarchar(20)

 

回款日期

hkrqdatetime

 

欠款金额

qkjedecimal

(2)

实收金额

skhjdecimal

(2)

 

累计余额

ljyedecimal

(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

列名数据类型(精度范围)空/非空约束条件名称

 

供应商编号

gysbhvarchar(20)notnullprimarykey

 

供应商名称

gysmcvarchar(80)

拼音编码

pymvarchar(10)

 

供应商地址

gysdzvarchar(80)

所属地区

ssdqvarchar(40)

 

邮政编码

yzbmvarchar(10)

联系电话

telvarchar(20)

 

联系人

lxrvarchar(10)

开户银行

khyhvarchar(40)

开户账号

khzhvarchar(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)

规格

剂型

jxvarchar(10)

 

产地

cdvarchar(20)

 

包装数量

bzslint

有效期

yxqvarchar(10)

 

质量标准

zlbzvarchar(20)

经营方式

jyfsvarchar(8)

 

批号

phvarchar(10)

零售价格

lsjgfloat

 

进货价格

jhjgfloat

批发价格

pfjgfloat

药品类名

yplbvarchar(20)

 

医疗保险编号

ylbhvarchar(10)

 

补充说明

 

表名

tb_sell_detaile

列名

数据类型(精度范围)

空/非空

约束条件

名称

xslsh

int

notnull

primarykey

销售流水号码

ypbh

varchar(20)

药品编号

xsdjh

varchar(20)

销售单据号

xssl

int

销售数量

xsdj

float

销售单价

xsje

float

销售金额

销售日期

xsrqdatetime

 

退货状态

thstschar(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

销售折扣

 

应收金额

ysjefloat

 

实收金额

ssjefloat

 

未收金额

wsjefloat

销售日期

xsrqdatetime

 

收款方式

skfsvarchar(10)

经办人

jbrvarchar(10)

 

清算状态

qsstsvarchar

(2)

回款金额

hkjefloat

 

回款日期

hkrqdatetime

补充说明

 

表名

tb_stock

列名

数据类型(精度范围)

空/非空

约束条件

名称

ypbh

varchar(50)

notnull

primarykey

药品编号

rksl

int

入库数量

xssl

int

销售数量

kcsl

int

库存数量

pdsl

int

盘点数量

pdrq

datetime

盘点日期

补充说明

 

表名

tb_username

列名数据类型(精度范围)空/非空约束条件名称

 

用户ID

useridvarchar(20)notnullprimarykey

 

用户名

usernamevarchar(50)

密码

passwordvarchar(50)

 

确认密码

passconfvarchar(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

 

 

rklsh

 

rkdjh

 

ypbh

 

rksl

 

rkdj

 

rkje

 

rkrq

 

kcsl

 

kcsts

 

intnotnullauto_increment,

 

varchar(20),

 

varchar(20),

 

int,

 

float,

 

float,

 

datetime,

 

int,

 

char(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

 

 

hklsh

 

varchar(20)notnull,

 

xslsh

 

int,

 

khbh

 

varchar(20),

 

hkrq

 

datetime,

 

qkje

 

decimal(2,0),

 

skhj

 

decimal(2,0),

 

ljye

 

decimal(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*/

 

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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