医院药品进销存系统

上传人:ba****u 文档编号:122056010 上传时间:2022-07-20 格式:DOCX 页数:12 大小:252.16KB
收藏 版权申诉 举报 下载
医院药品进销存系统_第1页
第1页 / 共12页
医院药品进销存系统_第2页
第2页 / 共12页
医院药品进销存系统_第3页
第3页 / 共12页
资源描述:

《医院药品进销存系统》由会员分享,可在线阅读,更多相关《医院药品进销存系统(12页珍藏版)》请在装配图网上搜索。

1、医院药品进销存系统数据库设计一 需求分析1.1 需求调查由于对医院和药品编码等信息不是很熟悉,我们在网上和附近的医院进行了系统的调查, 以使我们的设计更符合实际包括以下几个方面:1、医院药品进销存业务状况:系统需求、组织结构、管理内容、业务过程等。2、数据的规范与统一:详细了解了药品统一编码的规范,对于同一种编码的药品它的通 用名,剂型,规格是相同的。而与其它属性(质量层次,价格等)无关。3、其他要求:对数据保密性、数据完整性的要求,对数据精度和数据吞吐量的要求,对 来功能、应用范围扩展性的要求等。1.2 基本功能分析本设计要实现的是医院药品进销存系统,在设计该系统时,应尽可能贴近实际、便于用

2、户 操作.系统在实现上应该具有如下功能:1. 系统要示用户必须输入正确的用户名和密码才能进入系统.2. 主要功能模块A. 新药品的入库。B. 过期药品的出库登记、处理记录。C. 药品库存检索。D. 供货商信息检索。E. 药品采购记录管理。F. 药品用药说明信息管理。G. 输出相应的数据报表。H. *具有数据备份和数据恢复功能。其功能模块图如下:医院药品进销存系统新药品入药品出库药品库存库管理(包检索括过期处理)1 1供货商信I T 1药品采购药品用药息检索记录管理说明信息管理二 概念设计在需求分析的基础上,我们对医院药品进销存系统有了一定的了解。在分析设计概念模 型时,首先找出模型所需的实体,

3、然后找到各实体之间的关系,画出ER模型图。 2.1、实体及其间的关系设计对于医院药品进销存系统,我们设计了药品,供货商,仓库,操作员四个实体。 结合实际情况及对数据库设计的方便,各个实体之间的关系如下: 供货商和药品之间应该是存在Offer关联,它们之间为多对多关系。供货商,仓库,药品之间存在Order关联,它们之间为多对多关系。药品,仓库之间存在Own关联,它们之间为多对多关系。药品,操作员,仓库之间存在InS to re和Ou tSt ore关联,它们之间为多对多关系。药品和操作员之间存在Medicine_Useinfo关联,它们之间为多对多关系。2.2 E-R模型图的设计根据较为详细的需

4、求分析,我们设计出了以下E-R模型图如下.Medici neM IDA1EM_N 0ASfvl N =i n eWA50WI_TypeWA10UWlnf.lS pecVAWIVl_G!l&valWA10hl_P心F10M_DateLOutTi mDTId entifieEpi*O.nOwnFroviderP IDF_N-=imeVA50FddUA50P_PcAGF_TelVAI 4P_EmilVA50F_FaxVA1OFLCer.PUA20F-CmTeIVAI 4Identifie r_1O.riOrderU.n/ F ati e nt_ N a m eWA20 1 OwnMouit 11 /

5、Od.IDA5 i1 Usfijuluuni:1Od.Julou nt1I 11 c p F rir aFl 0|1 odrimt*匚IT Use DTodFriesF10Medicine IJseinfo.n u-tS-to reIdentifieM O.-n jt_D-a+eDT ij+_TpeVA20 卜In 370 reIn Mount IIn D.=iU DT hiT=-Eh心5 ID A5 S AdtirWAGO 呦2三逻辑设计逻辑结构设计的目的是将ER模型向关系模型转换,注意转换时关系的主键、外键的设置 以保持原有的ER模型中实体与实体之间的关系,另外还应当进行规范化处理以消除数

6、据冗 余。3.1 ER图向关系模型的转化(主键已标出下划线)Medicine(M NO,M ID, M_Name, M_Type,M_Spec,M_Qlevel,M_Price,M_Date,M_Date,M_Funtime) 存在冗余,根我们把它拆分成两张表Medicine(M ID,M Name.M Type.M Spec)Medicine Sub(M NO,M ID,M Price.P ID,M Da te,M_Da te,M_0u tTime,M_Qlevel)注:M_ID为外键其他关系模型如下St oreRoom(S ID,S Addr)Opera tor (0 ID,0 Name,

7、0 sex)Provider(P ID,P Name,P Addr,P Pos t,P_Tel,P_Email,P_Fax,P_Conp,P_ConTel)Offer(M ID,P ID)注M_ID,P_ID为外键0wn(M NO,S ID,0wn Moun t)注:M_NO,S_ID为外键InS to re(S ID,O ID ,In_Mount,I n_Da te)注:S_ID,O_ID为外键OutSto re(O ID,S ID,Ou t_Mount ,Ou t_Da te,Ou t_ Type)注:O_ID,S_ID为外键Order(P ID,S ID,Od ID,Od Moun t,

8、Od_Da te,Od_Price)注:P_ID,S_ID为外键Medicine Useinfo(M NO,O ID,Patient_Name,Use_Mount, Use_Price,Use_Date)注:M_NO,O_ID为外键3.2、E-R图转换成关系模型所遵循的原则我们把E-R图转换成关系模型所遵循的原则:1) 每一个实体类型转换成一个关系模式。如实体 Medicine,StoreRoom,Operator, Provider,都可以转化成对应的一个关系模式。关系模型的主键是E-R模型的标识符,其 他属性一样。2) 一个联系可转化为一个关系模式,那么,两端关系的标识符及该联系属性为关系

9、的 属性,而关系的标识符为两端实体标识符的组合。3) 三个或三个以上的多对多的联系可转化为一个关系模式,那么,该关系的标识符及联 系的属性为关系的属性,而关系的标识符为各实体标识符的组合。4) 我们还涉及到了引用完整性约束,也就是外键的约束,外码的约束贯穿着我们设计的 始终,它把我们建立的关系紧密的联系在了一起。5) 我们对关系模式进行了消除数据冗余的处理。应符合第三范式,不允许出现传递依 赖、冗余、异常等等。在逻辑设计中形成了关系表后需要对关系作规范化处理,使每个关 系表至少满足第三范式的要求。对违反第三范式的关系我们进行了分析并作了相应的调整。 对各关系模式之间的数据依赖进行了极小化处理,

10、消除了冗余。对违反第三范式的关系模 式进行了必要的分解和合并。3.3 数据表的详细信息以下是各个数据表的详细信息(还附加了一个表来存放管理员的信息.以便于管理员用 户的登录操作):Medicine信息表列名数据类型按度允许空3lchar16varchar50MTypevarchar10M_Specvarchar10Medicine_Sub 信息表列名数据类型长度允许空M HOuhar8M IDchar16M Fri ceniuri sr i c9F IDSM DatedatetimeBM 0utTimedatetime8M QLevelv ar char10Provider信息表列名数据类型长

11、度允许空F IBchar5P Nainevarchar50f Addrvarchar50P Postchar6P Telvarctiar14F Emailvarchar50P F anvarchar10ZF Confvarchar20讨P_ConTelvarchar14V/Opera tor信息表数据类型允许空|90_IDchar5DHamEvsr char200_Sxchr1riStoreRoom信息表列名数据类型允许空S_ID匚hH第5页共12页var char5S_Addr50DealOutDate 表列名数据类型允许空S_IDchar5M_IDchar160_IDchar5D&al_T

12、ypevarchsr50DealEateda/l 已 t imE8Deal_A.ddrvar char50Dasl_Mountint4Own信息表Orders信息表列名数据类型允许空Od IDchar16F IEchar5S IEchar5M IEchar160 d M oimtint4Od Eatelatetirrie呂Od Fri cermnier i cInStore信息表列名数据类型按度允许空S_IEchar50_IBchar5N_IBchar1&In_Hcuntint4In_Ilatedatetime8OutStore信息表Offer信息表Medicine_Useinfo 信息表列名

13、数据类型按度允许空M_IEchar160_IBchar5Patientjamevarchar20U詐int4U5e_Fri cenuni eri c9datetime8UserList信息表列名数据类型长度允许空yar char50fas zTfordyar char50U-_. . . 4四物理设计41索引设计关系属性A上的索引是一种数据结构,它可以提高查找在属性A上具有某个特定值的 元祖的效率。索引通常有助于包含有属性A和常量的查询,但当关系变得很大时,通过扫 描关系中所有的元祖来找出那些匹配给定条件的元祖的操作方式代价太高。故我们设计索 引需要对一下两方面折中选择。首先,对某个属性使用索

14、引能极大的提高对该属性值的检索效率,使用该属性时,还 可以加快连接。其次,对关系上某个属性的索引会使得对关系的插入、删除、修改变得复杂和费时。因此经过分析本系统的功能和需求可知,本系统的药品表中的记录可能相当的庞大,而 且基于药品名称或编码的查询和修改相当的频繁,加之在数据库更新和维护过程中对供货 商的更新和查询也比较的频繁,而且供货商的数量也可能比较大,综合考量后应为本系统 建立如下3个索引,已达到操作的便捷和系统功能的优化。create unique index M_ID_index on Medicine(M_ID);create unique index P_ID_index on P

15、rovider(P_ID);create index M_Name_index on Medicine(M_Name);五安全性设计51安全性设计分析SQLServer的安全性管理是建立在认证和访问许可两者机制上的。认证是指确定登陆 SQLServer的用户的登录账号和密码是否正确,以此来验证其是否具有链接SQL Server的 权限。但是登录并不被授予访问数据库的许可。第二个用户级才是用户,用户在数据库内具 有访问数据库的权限之后才能对数据库进行权限许可下的各种操作。而具有相同的许可的用 户可以组成一个角色。考虑到该系统可能有不同的用户,而每个用户对该数据库的访问权限应该是不一样的。 我们把

16、该系统的用户角色大致分为:管理员和不同的操作员。结合实际情况,管理员可以对整个系统进行所有的操作,包括查询、删除、修改、插入。 操作员可以进行他所允许范围内的操作。例如入库操作员可以进行查询药品信息的添加修改, 第8页共12页库房信息的添加修改。出库操作员可以进行用药信息的管理,过期药品处理的管理和库房信 息的修改删除。由于考虑到引用完整性约束,也即是外键约束。在删除、修改时用级联原则。当一个表 的某一些值被修改时,引用这个表的属性的表的相应的属性值随着改变。5.2添加用户和角色添加用户步骤一,从 SQL Server 程序组中运行 SQL Server Enterprise Manager。

17、 步骤二,在窗口左半部中将使用的服务器,将其展开。步骤三,选择要添加用户的数据库(Medicine数据库),将其展开。 步骤四,选择用户目录,单击右键,选择新建用户,弹出数据库用户属性窗口。 步骤五,从登录名下拉框中选择用户所属的登陆。(或者新建一个登陆,方法为:选择下 拉框中新建,在弹出的对话框中填入名称,选择SQL Server身份验证,填写密码。-确定- 填写新密码-确定)步骤六,在数据库角色允许选择Public。 步骤七,单击“确定”生成新的用户,添加用户后,在用户子目录下看到该用户。 添加角色步骤一,从 SQL Server 程序组中运行 SQL Server Enterprise

18、Manager。 步骤二,在窗口左半部中将使用的服务器,将其展开。步骤三,选择要添加用户的数据库(Medicine数据库),将其展开。 步骤四,选择角色子目录,单击右键,选择新建角色,弹出数据库角色属性窗口。 步骤七,在名称框中输入角色名。步骤八,如果要往角色中添加现有的用户,单击添加按纽将用户添加到角色中。 步骤九,单击OK将角色添加到数据库中,此时SQL Server Enterprise Manager窗口的 右半部窗口中会显示新添加的角色。步骤十,用鼠标右键单击新添加的角色,从弹出的快捷菜单中选择属性,右键单击打开。 步骤十一单击权限按钮,打开数据库角色属性对话框,在要赋予它权限设置上

19、面打钩。 单击仅列出该角色具有权限的对象,检查赋予的权限是否正确。步骤十二,检查无误,单击确定按纽返回到SQL Server Enterprise Manager。六 数据库实现6.1数据表的创建及其完整性说明:*供货商 Provider 表 *create table Provider(P_ID char(5) primary key,P_Name varchar(50) unique not null,P_Addr varchar(50) not null,P_Post char(6),P_Tel varchar(14) not null,P_Email varchar(50) not n

20、ull, P_Fax varchar(10) ,P_ConP varchar(20), P_ConTel varchar(14)*药品 Medicine 表 *create table Medicine(M_ID char(16) primary key,M_Name varchar(50) not null,M_Type varchar(10) not null,M_Spec varchar(10) not null, )* 药品 Medicine 子表 * create table Medicine_Sub(M_NOchar(8) primary key,M_IDchar(16) refe

21、rences Medicine(M_ID) not null,M_Pricenumeric(10,2),P_ID char(5) references Provider(P_ID) not null, M_Date datetime not null,M_OutTime datetime not null, M_QLevel varchar(10) not null )* 库房 StoreRoom 表 * create table StoreRoom(S_ID char(5) primary key,S_Addr varchar(50) not null )/= * 库房拥有药品 0wn 表

22、*create table Own(M_ID char(16) references Medicine(M_ID) not null,S_ID char(5) references StoreRoom(S_ID) not null, 0wn_Mount int not null) * 订单 orders 表 * create table 0rders(0d_ID char(8),P_IDchar(5)references Provider(P_ID) not null,S_IDchar(5)references StoreRoom(S_ID) not null,M_ID char(16) re

23、ferences Medicine(M_ID) not null, 0d_Mount int not null,0d_Datedatetime not null,0d_Price numeric(10,2) not null)* 操作员 Opera tor 表 * create table Operator(O_IDchar(5) primary key,O_Namevarchar(20) not null,O_Sexchar(1) check(O_Sex in (F,M) default(M)* 出库 OutStore 表 *create table OutStore(O_ID char(5

24、) references Operator(O_ID) not null,S_ID char(5) references StoreRoom(S_ID) not null,M_ID char(16) references Medicine(M_ID) not null,Out_Mount int not null,Out_Date datetime not null,Out_Type varchar(20) check(Out_Type in (Sell,OutOfDate) not null )* 供货商提供药品 offer 表 * create table Offer(P_ID char(

25、5) references Provider(P_ID) not null, M_ID char(16) references Medicine(M_ID) not null, )*用药信息 Medicine_Useinfo 表 * create table Medicine_Useinfo(M_ID char(16) references Medicine(M_ID) not null, O_ID char(5) references Operator(O_ID) not null, Patient_Name varchar(20) not null,Use_Mount int not nu

26、ll,Use_Price numeric(10,2) not null,Use_Date datetime not null) *入库 inStore 表 * create table InStore(S_ID char(5) references StoreRoom(S_ID) not null,O_ID char(5) references Operator(O_ID) not null,M_ID char(16) references Medicine(M_ID) not null, In_Mount int not null,In_Date datetime not null*过期药品

27、处理 DealOutDate 表 * create table DealOutDate(S_ID char(5) references StoreRoom(S_ID) not null,M_ID char(16) references Medicine(M_ID) not null,O_ID char(5) references Operator(O_ID) not null,Deal_Type varchar(50) not null,Deal_Date datetime not null,Deal_Addr varchar(50) not null,Deal_Mount int not n

28、ull)*过期药品 OutOfDateMedicine 视图 *Create view OutOfDateMedicine asselect *from Medicine_Subwhere M_OutTimegetCurrentDate*库存总量 storeroomTotalAmount 视图 *Create view StoreroomTotalAmount asselect s_ID,sum(Own_Mount) as totalAmountfrom Owngroup by s_ID*订单总价 OrdersTotalPrice 视图 *Create view OrdersTotalPrice asselect Od_ID,sum(Od_Price) as totalPricefrom Ordersgroup by Od_ID七 参考文献数据库系统基础教程(中、英文版,第2版),美国斯坦福大学,机械工业出版社2006.07精通SQL-结果会查询语言详解高守传,人民有点出版社,2006数据库设计教程,何玉洁等翻译,机械工业出版社,2003数据库系统教程,王能斌著,电子工业出版社,2002

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!