药品进销存管理方案计划系统数据库设计
- 格式:doc
- 大小:362.48 KB
- 文档页数:23
数据库课程设计报告课题: 药品进销存管理系统专业班级:计算机科学与技术学号:姓名:指导教师: 老师学院:信息工程学院2015年6月18日目录摘要 (2)1 课程设计的目的和意义 (3)2 需求分析 (4)3.总体设计 (5)4.详细设计 (6)4 系统实现 05 系统调试 0小结 0参考文献 0摘要信息时代已经来临,信息处理的利器——计算机,应用于商品的日常管理,为经济管理的现代化带来了从未有过的动力和机遇,为商品销售领域的发展提供了无限的潜力。
采用计算机管理信息系统已成为商品管理科学化和现代化的标志,给销售商带来了明显的经济效益和社会效益。
这个数据库系统是一个药品进销存管理系统,包括药品销售界面、库存查询界面以及药品信息查询界面,分别有添加、删除、查阅等功能。
药品进销存管理系统其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用v isual Studio 2010以及SQL2008开发工具,利用其易于上手和强大的数据库支持,方便我们快速开发出这个系统。
1 课程设计的目的和意义药品管理是商品管理的一种。
一些大中型的医院、药品专卖店或药房,往往存在对药品的进销存管理问题。
采用传统的管理方式费工费时、效率低下。
因此设计出一款能够满足需要的软件,不仅能使办公效率大大提升,也对管理的科学性、安全性、可预见性方面提供了依据。
这对企业来说节约了成本、提高了可靠性,也更便于操作。
2 需求分析这个系统是面向销售方的。
所以应从他们的角度考虑,系统应方便他们对药品进行日常管理,所以大体上包括以下内容:药品销售的管理、药品入库的管理、库存的管理、药品基本信息的管理,在药品销售窗体中,功能基本上包括基本药品的查询及选购数量和总价,一些简单的计算包括录入销售单价和数量之后自动计算出总额,在入库管理中,功能基本上包括药品添加、删除和修改等等;在库存管理窗体中基本功能包括基本库存信息的浏览和查询等。
山东交通学院数据库应用课程设计药品存销信息管理系统院(系)别信息科学与电气工程学院班级计算103学号*********姓名刘亚会指导教师庞希愚时间2012-04-06—2012-04-21课程设计任务书题目药品存销信息管理系统数据库应用课程设计系 (部) 信息科学与电气工程学院专业计算机科学与技术班级计算103 学生姓名刘亚会学号 ********* 04 月 06 日至 04 月 21日共 2 周指导教师(签字)系主任(签字)年月日成绩评定表目录1课程设计概述61.1药品存销信息管理系统功能概述 (6)1.2开发环境概述 (6)2药品存销信息管理系统总体设计 (7)2.1药品存销信息管理系统设计思想 (7)2.2总体设计流程图 (7)3药品存销信息管理系统详细设计 (8)3.1类图 (8)3.2登陆功能实现 (8)3.3添加客户信息 (9)3.4删除客户信息 (9)3.5添加商品信息 (10)3.6删除商品信息 (10)3.7添加供应商信息 (11)3.8删除供应商信息 (11)3.9添加进货单/添加退货单/添加销售单/添加销售退货单 (11)3.10查询功能实现 (12)3.11价格调整 (13)3.12密码修改 (14)3.13添加管理员 (14)4数据库设计 (15)4.1客户信息表 (15)4.2商品信息表 (16)4.3供应商信息表 (16)4.4 进货单表 (17)4.5退货单表 (17)4.6销售单表 (18)4.7销售退货单表 (19)5设计体会及今后的改进意见 (20)6参考文献 (21)摘要私達の実践の能力を高めるため、学んだ知識を運用することができて行って更に創造して、学校は特に2週間手配して、私達にデータベースの課程の設計の実習を行わせます.このファイルの詳しい説明はmysqlとmyeclipse環境の下で、1つのソフトウェアの過程を設計して、このソフトウェアは各種のデータの個数を統計したのです。
摘要采用结构化开发方法进行系统调查,系统分析、系统设计以及系统实施。
系统的主要内容是以公司的库存管理、销售管理、进货管理、供应商管理、客户管理以及查询功能。
使用SQLSERVER为后台数据库,使用POWERDESIGN为数据库设计工具,使用VB作为前台程序开发工具,设计实现了产品的进销存管理。
关键字:供货;销售;库存;管理;数据库;VB1概述传统销售系统存在信息化不足,计算机使用率低,大量的日常工作皆是手工处理,因此工作效率低落,企业内部沟通不良等等问题很难克服,仓库管理很不合理,不能及时根据需要调整库存。
本设计是为某公司药品的进销存三方面的业务展开分析和设计的,针对该公司的业务现状,该系统设计实现了库存管理、销售管理、进货管理、供应商管理、客户管理等功能。
2 需求分析2.1 系统功能描述随着时代的发展,销售业务量的逐步增大,现有的靠人工管理的模式已经越来越跟不上当今商务飞速发展的脚步。
计算机辅助管理势在必行。
该公司所须的计算机管理系统应具备如下特点:1、投资少.2、见效快。
3、实用性强。
4、系统有机结合。
5、实现全面管理。
6、丰富的查询功能。
7、辅助决策.8、为了更好的实现管理功能。
9、新系统模块重新划分。
10、新系统分为:入库管理模块、销售管理模块、库存管理模块、客户管理模块、供应商管理模块、查询六个模块基本上满足公司管理的需要。
11、主要实现以下功能入库管理模块:录入、查询进货信息。
销售管理模块:录入、查询销售信息.库存管理模块:查询库存信息。
供应商管理模块:录入、查询,删除供应商信息.客户管理模块:设置、查询客户信息、供应商信息。
查询:库存查询、入库查询、销售查询等。
2。
2 数据流图(DFD)数据流图简称DFD图,数据流图有四种成分:源点或终点、处理、数据存储表和数据流。
图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专业的计算机技术人员也容易理解,是极好的理解工具.它能精确的描述系统的逻辑模型,描述数据在MIS中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很好的工具。
1.设计目的以药品信息为主体,通过对各种出库、入库的管理操作,实现以下目标:一、实现新药品的入库管理二、实现过期药品的出库登记,处理记录三、实现药品哭残的检索四、实现供货商信息的检索五、实现药品采购记录的管理六、实现药品用药说明信息的管理。
2.设计内容基本全部工程3.1用例图说明(图1)用例图——医药进销存系统(管理员)员工(图2)用例图用例图——医药进销存系统(员工) 3.2 数据库表的设计及说明药品信息表(表1)入库表(表2)出库表(表3)供应商表(表4)User(表5)客户表(表6)销售表(表7)员工表(表8)员工权限Nchar(10) 可以为null4.系统详细分析设计4.1开发工具及系统运行环境(1)开发工具:Microsoft Visual Studio 2008(2)运行环境:CPU 奔腾Ⅳ 1.4G或以上内存512M或以上硬盘80GB或以上服务器端OS Windows 2000/NT/Server客户端OS Windows 2000/XP网络配置局域网4.2系统实现(1)登录界面using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class login : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void btnSubmit_Click1(object sender, EventArgs e){SqlConnection conn = new SqlConnection();conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString();conn.Open();SqlCommand cmd = new SqlCommand();mandText = "select * from [yuangong] where 员工ID='" + textUserName.Text + "'and 密码='" + textUserPwd.Text + "'";cmd.Connection = conn;SqlDataReader sr = cmd.ExecuteReader();if (sr.Read()){Session["user"] = this.textUserName.Text;Session["password"] = this.textUserPwd.Text;Session["us"] = sr.GetString(1).Trim();Session["power"] = sr.GetString(6).Trim();string power = Session["power"].ToString();if (power.Equals("admin")){Response.Redirect("mlogin.aspx");}else if (power.Equals("saler")){Response.Redirect("slogin.aspx");}else{Response.Redirect("alogin.aspx");}}else{Response.Write("<Script language='javascript'>alert('用户名或密码不正确!')</script>");}}protected void btnCancel_Click1(object sender, EventArgs e){textUserName.Text = "";textUserPwd.Text = "";}}(2)主界面using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class alogin : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e) {if (Session["user"] == null){ Response.Redirect("login.aspx"); }else{if (Session["power"].ToString() != "addinfo")Response.Redirect("login.aspx");}}}using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class aselect : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e) {}}(3)药品信息using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class ypim : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e) {GridView1.Visible = true;GridView2.Visible = false;}protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){GridView2.Visible = true;GridView1.Visible = false;}protected void Button1_Click(object sender, EventArgs e){GridView1.DataSourceID = "SqlDataSource1";GridView1.Visible = true;GridView2.Visible = false;//SqlConnection conn = new SqlConnection(@"Data Source=THINKPAD-PC;Initial Catalog=yiyao;Integrated Security=True"); //string sql = "select 药品ID,药品名,价格,库存量,供应商,单位,规格 from yaopin";//SqlDataAdapter adpater = new SqlDataAdapter(sql, conn);//DataSet ds = new DataSet();//adpater.Fill(ds);//GridView1.DataSource = ds.Tables[0].DefaultView;//GridView1.DataBind();}protected void Button2_Click(object sender, EventArgs e){//SqlConnection conn = new SqlConnection(@"Data Source=THINKPAD-PC;Initial Catalog=yiyao;Integrated Security=True");//string sql = "select 药品ID,药品名,价格,库存量,供应商,单位,规格 from yaopin where 有效期 < '" + DateTime.Now.ToString() + "'"; //SqlDataAdapter adpater = new SqlDataAdapter(sql, conn);//DataSet ds = new DataSet();//adpater.Fill(ds);//GridView1.DataSource = ds.Tables[0].DefaultView;////GridView1.DataBind();GridView1.Visible = false;GridView2.Visible = false;}protected void SqlDataSource6_Selecting(object sender, SqlDataSourceSelectingEventArgs e){}}(4)客户信息(5)供应商信息(6)增加药品信息using System;using System.Data;using System.Configuration; using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class AddYaoPinInfo : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){SqlConnection conn = new SqlConnection();conn.ConnectionString=ConfigurationManager.ConnectionStrings["yyxsstr ing"].ToString();conn.Open();SqlCommand smd = new SqlCommand();smd.Connection = conn;mandText = "select * from yaopin where 药品ID='" + TextBox1.Text.Trim() + "'";SqlDataReader sd = smd.ExecuteReader();if (!sd.HasRows){sd.Close();SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "insert into yaopin(药品ID,药品名,价格,供应商,单位,规格,生产日期,有效期)values('" + TextBox1.Text.Trim() +"','" + TextBox2.Text.Trim() + "'," + float.Parse(TextBox3.Text) + ",'" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','" + TextBox6.Text.Trim() + "','" + TextBox7.Text.Trim() + "','" + TextBox8.Text.Trim() + "')";cmd.ExecuteNonQuery();Response.Write ("<script>alert('操作成功!')</script>");TextBox1.Text = "";TextBox2.Text = "";TextBox3.Text = "";TextBox4.Text = "";TextBox5.Text = "";TextBox6.Text = "";TextBox7.Text = "";TextBox8.Text = "";}else{Response.Write("<script>alert('药品ID已存在')</script>");}conn.Close();sd.Close();}}(7)增加客户信息using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class addkehu : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e) {SqlConnection conn = new SqlConnection();conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString();conn.Open();SqlCommand smd = new SqlCommand();smd.Connection = conn;mandText = "select * from kehu where 客户ID='" + TextBox1.Text.Trim() + "'";SqlDataReader sd = smd.ExecuteReader();if (!sd.HasRows){sd.Close();SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "insert into kehu(客户ID,客户名称,联系电话,联系地址) values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + ",')";cmd.ExecuteNonQuery();Response.Write("<script>alert('操作成功!')</script>"); TextBox1.Text = "";TextBox2.Text = "";TextBox3.Text = "";TextBox4.Text = "";}else{Response.Write("<script>alert('客户ID已存在')</script>");}conn.Close(); sd.Close(); }}(7)员工信息①增加员工信息using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class adduser : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){SqlConnection conn = new SqlConnection();conn.ConnectionString = ConfigurationManager.ConnectionStrings["yyxsstring"].ToString();conn.Open();SqlCommand smd = new SqlCommand();smd.Connection = conn;mandText = "select * from yuangong where 员工ID='" + TextBox1.Text.Trim() + "'";SqlDataReader sd = smd.ExecuteReader();if (!sd.HasRows){sd.Close();SqlCommand cmd = new SqlCommand();cmd.Connection = conn;mandText = "insert into yuangong(员工ID,员工姓名,员工性别,年龄,联系电话,密码,员工权限) values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','" + TextBox6.Text.Trim() + "','" + TextBox7.Text.Trim() + "')";cmd.ExecuteNonQuery();Response.Write("<script>alert('操作成功!')</script>"); TextBox1.Text = "";TextBox2.Text = "";TextBox3.Text = "";TextBox4.Text = "";TextBox5.Text = "";TextBox6.Text = "";TextBox7.Text = "";}else{Response.Write("<script>alert('员工ID已存在')</script>");}conn.Close();sd.Close();}}②修改员工信息③删除员工信息(8)数据恢复4.3 心得体会在这次的编程实训中,我对于一些编程思想有了新的认识,例如,以前并不看重模块化编程,但是,此次让我了解到模块化编程的好处和重要性。
数据库设计说明书一、引言1、编写目的本说明书说明“药品进销存管理系统”的数据库设计、结构情况,用于开发人员进行项目设计,同时也为后续的数据库维护工作提供了良好的使用说明,也可以作为未来版本升级时的重要参考资料。
2、数据库数据库名称:db_YPJXC 数据库系统:MySQL数据库宿主环境:Windows3、定义E-R 图:实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
实体表:用户实际使用的客观表格。
二、数据库设计数据库的设计是系统设计的主要环节,下面从系统E-R 图、编码规则等方面详细介绍数据库的设计过程。
1、药品进销存管理系统的E-R 图药品进销存管理系统主要实现从进货、库存到销售的一体化信息管理,涉及药品信息、药品供应商、购买药品的客户等多个实体。
下面简单介绍几个关键的实体E-R 图。
1.1 客户实体E-R 图药品进销存管理系统将记录所有的客户信息,在销售、退货等操作时,将直接引用客户的实体属性。
客户实体包括客户编号、客户名称、拼音编码、简称、联系人、地址、邮编、电话、传真、开户银行、银行帐号、业务员等属性,客户实体E-R 图如图1所示。
拼音编码客户客户名称 拼音编码 简称 地址 邮编电话客户编号 业务员 银行账号开户银行传真联系人图1 客户实体E-R 图1.2 供应商实体E-R 图不同的供应商可以为企业提供不同的药品,在药品信息中将引用药品供应商的实体属性。
供应商实体包括供应商编号、供应商名称、拼音编码、简称、地址、邮编、电话、传真、开户银行、银行帐号、库房地址、库房电话、业务员等属性,供应商实体E-R 图如图2所示。
图2供应商实体E-R 图1.3 药品实体E-R 图药品信息是进销存管理系统中的基本信息,系统将维护药品的进货、销售、销售退货等操作。
药品实体包括药品编号、条形码、药品名称、简称、拼音编码、规格、单位、产地、保质期、类别、批准文号、进货价、零售价、批发价等属性,药品实体E-R 图如图3所示。
医院药品管理系统大数据库设计系统医院药品管理系统是一个重要的信息管理系统,用于管理医院的药品库存、进货、销售等相关信息。
一个良好的数据库设计对于系统的高效运行和数据安全性至关重要。
下面是一种可能的医院药品管理系统大数据库设计的简要介绍:1.实体分析:-药品实体:包括药品编号、药品名称、药品类型、生产厂家、进货价、售价、库存量等属性;-进货实体:包括进货单号、供应商编号、进货日期、总金额等属性;-销售实体:包括销售单号、销售日期、销售数量、销售金额等属性;2.关系分析:-药品与供应商之间是多对一的关系,即一个供应商可以提供多种药品;-进货与供应商之间是一对多的关系,即一个供应商可以对应多个进货单;-销售与药品之间是多对一的关系,即一种药品可以有多次销售记录。
3.数据表设计:-药品表:包括药品编号(主键)、药品名称、药品类型、生产厂家、进货价、售价、库存量等字段;-进货表:包括进货单号(主键)、供应商编号、进货日期、总金额等字段;-进货明细表:包括进货单号、药品编号、进货数量、进货单价等字段;-销售表:包括销售单号(主键)、销售日期、销售金额等字段;-销售明细表:包括销售单号、药品编号、销售数量、销售单价等字段。
4.数据库关系图如下:+----------------------+药品+-----------------------+药品编号,主药品名称药品类型生产厂家进货价售价库存量+-----------------------++------------------------+供应商+-------------------------+供应商编号,主供应商名称地址+-------------------------+ +------------------------+进货+-------------------------+进货单号,主供应商编号,外进货日期总金额+-------------------------+ +------------------------+进货明细+------------------------+进货单号,外药品编号,外进货数量进货单价+------------------------++------------------------+销售+------------------------+销售单号,主销售日期销售金额+------------------------++------------------------+销售明细+------------------------+销售单号,外药品编号,外销售数量销售单价+------------------------+通过以上的数据库设计,可以实现医院药品管理系统的基本功能,包括药品的录入、供应商信息的录入、药品的进货、销售等功能。
摘要如今,科学技术飞速发展,电脑基本上已经进入家家户户,生活中好多问题都有了电脑的帮助,但小型药店药品管理仍是人工管理,信息处理时工作量大、容易出现错误,针对这一情况,我设计了药店药品管理系统,用以提高人们买药时的效率,减小药店工作人员的工作量,提高管理水平。
它包括药店药品的购进管理、药品的出售管理、药品的存储管理等几大功能模块,并提供了对各个功能模块的查询、更新、统计等功能。
以上这几种功能基本上是通过存储过程来实现的。
该系统开发由系统需求分析阶段(设计出该药店药品管理系统的业务流程图、各阶层的数据流图和数据字典)、概念设计阶段(设计分E-R图,生成全局E-R图)、逻辑设计阶段(将E-R模型转换为关系模型、模型优化)、数据库实施阶段(数据的载入、应用程序的编码和调试)、系统调试和测试阶段等阶段组成。
它的实现是通过SQL SERVER 2000这一软件来实现的。
关键字:药品、购进药品、药品出售、药品存储目录1需求分析阶段 (1)1.1 引言 (1)1.2 目标和任务 (1)1.3 结果 (2)2概念设计阶段 (7)2.1 引言 (7)2.2 具体任务 (7)2.3 结果 (7)3逻辑设计阶段 (9)3.1 引言 (9)3.2 任务 (9)4物理设计阶段 (13)4.1 目标与任务 (13)4.2 数据存取方法 (13)4.3 系统功能模块分析 (13)5数据库实施阶段 (13)5.1 目标 (13)5.2 任务 (14)5.3 调试与试运行 (14)6数据库运行和维护阶段 (14)7课程总结 (14)附录1数据流程图 (15)附录2数据定义语句 (16)附录3数据入库 (22)附录4数据操纵和存储过程功能的验证 (26)附录5参考文献 (29)1 需求分析阶段1.1 引言通过对学校周边的药店进行实地调查,了解到现在的药店的管理仍由人来完成,这种人工管理费时、费力,而且还会降低买药人员的买药效率,浪费其时间。
医药销售管理系统数据库设计一、系统概述当前社会医药行业发展迅速,为提高医药销售管理的效率和准确性,设计了医药销售管理系统。
该系统旨在帮助医药企业管理销售数据、客户信息、产品信息等,并能进行销售业绩分析、库存管理等功能。
二、数据库设计1. 数据库结构本系统的数据库采用关系型数据库管理系统,包括以下表:•客户表(Customer):存储客户信息,包括客户ID、姓名、联系方式等字段。
•产品表(Product):存储产品信息,包括产品ID、名称、价格等字段。
•销售记录表(Sales_Record):存储销售记录,包括销售记录ID、客户ID、产品ID、销售数量、销售日期等字段。
•库存表(Inventory):存储产品库存信息,包括产品ID、库存数量等字段。
2. 数据库字段设计客户表(Customer)字段名类型描述CustomerID INT 客户IDName VARCHAR 姓名Contact VARCHAR 联系方式产品表(Product)字段名类型描述ProductID INT 产品IDName VARCHAR 产品名称Price DECIMAL 价格销售记录表(Sales_Record)字段名类型描述SalesRecordID INT 销售记录IDCustomerID INT 客户IDProductID INT 产品IDSalesQuantity INT 销售数量SalesDate DATE 销售日期库存表(Inventory)字段名类型描述ProductID INT 产品IDStockQuantity INT 库存数量3. 数据库关系设计•客户表和销售记录表之间存在一对多关系,一个客户可以有多条销售记录。
•产品表和销售记录表之间也存在一对多关系,一个产品可以对应多条销售记录。
•产品表和库存表之间为一对一关系,每个产品对应唯一的库存信息。
三、系统功能医药销售管理系统将提供以下核心功能:1.客户信息管理:包括客户的添加、修改和删除操作。
课程设计(大作业)报告课程名称:数据库原理与技术设计题目:药品进存销信息管理系统院系:信息技术学院班级: 2010级计算机应用技术班设计者:杨浩超学号: 2指导教师:邱莎设计时间: 2012-6-20信息技术学院昆明学院课程设计(大作业)任务书一、题目分析如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高度的效率,已是医药经营企业,特别是医药连锁经营企业特别关心的问题。
尽快建立一个功能齐备的药品进、出库管理系统,完善现代企业的信息化管理机制,已成为医药企业生存发展的当务之急。
通过开发这个药品管理系统,使药品进销存管理工作系统化,规范化,自动化,从而达到提高管理效率的目的。
这个药品管理系统主要涉及医院药库的药品进、销、存等业务,以及入库、出库和库存管理,药品管理主要管理药库中所有药品的进出和内部统计计算,为药品会计提供基础数据,以及包括有效期的报警和下限报警。
本系统开发设计思想就是实现药品管理的数字化。
二、总体设计1.设计思想数据库表以二维表的形式存储在硬盘中,可以方便的用select语句进行组合查询,进而用视图的形式显示所要信息。
本系统分五个模块,需要用数据库建立五个表格,还有分别对药品信息,员工信息,客户信息,出库入库信息,销售信息进行单独管理。
1.1药品信息表设计该表是存储药品信息的表,主要用来存储药品的药品编号、药品名称、生产厂家、生产日期、保质期、用途、价格、数量、经手人1编号(药品编号为主键)1.2员工信息表设计该表存放了员工的基本信息,包括汽车的员工编号、姓名、性别、年龄、学历、职务表21.3出库入库信息表设计该表主要存储了出库入库的信息,包括当前库村药品流水号,药品、进货时间、数量、折扣、经手人等信息表31.4客户信息表设计该表主要存储了客户的信息,包括客户编号、姓名、性别、出生日期、联系电话等信息表41.5销售信息表设计该表主要存储了销售的信息,包括流水号、客户、购买时间、数量、折扣、经手人等基本信息表52.E-R 图员工进货药品销售客户编号姓名性别职务学历年龄流水号药品经手人折扣数量进货时间药品名称员工编号客户编号规格用途进货价保质期销售价生产厂家流水号经手人购买时间客户药品数量编号联系电话姓名性别出生日期生产日期折扣三、实验器材Microsoft SQL Server 2005软件Microsoft Visual Basic 6.0 中文版软件四、具体过程一、时间是6月18日星期一,具体的情况如下:小组开会讨论,分配给程序员查找数据和资料,编写创建数据库和表的代码,我的任务是进货和销售代码的编写,完成情况达到了预期的效果,成功的将数据加到数据库中。
药品进销存管理系统数据库设计一、基本分析1.1 数据库环境说明采用的数据库系统: mysql编程工具: MyEclipse8.0数据库建模工具: powerdesigner151.2基本功能分析本设计要实现的是药品进销存管理系统 ,在设计该系统时 ,应尽可能贴近实际、便于用户操作 .系统在实现上应该具有如下功能 :1.系统要提示用户必须输入正确的用户名和密码才能进入系统.2.其功能模块图如下:药品进销存管理系统系统登录用户管理基本信息业务管理业务查询系统管理增加用户药品情况药品采购基本信息系统退出用户维护客户情况药品销售入库明细数据库备份供应商情况库存盘点销售明细销售退货回款信息客户回款二、概念设计在需求分析的基础上,我们对药品进销存管理系统有了一定的了解。
在分析设计概念模型时,首先找出模型所需的实体,然后找到各实体之间的关系,画出E— R 模型图。
2.1 、实体及其间的关系设计对于药品进销存系统,我们设计了药品,客户,供货商,仓库,操作员四个实体。
结合实际情况及对数据库设计的方便,各个实体之间的关系如下:供货商和药品之间应该是存在采购关联,它们之间为多对多关系。
仓库,药品之间存在存储关联,它们之间为多对多关系。
药品,客户之间存在销售关联,它们之间为多对多关系。
操作员,仓库之间存在药品入库和出库关联,它们之间为多对多关系。
2.2 E-R 模型图的设计根据较为详细的需求分析,我们设计出了以下E-R 模型图如下 .药品药品编号<pi> Variable characters (20) <M>药品名称Variable characters (80) <M>0,n单位Variable characters (4)有效期Variable characters (10)零售价格FloatIdentifier_1 <pi>0,n0,n存储采购入库流水号码Variable characters(20) 入库单据号Variable characters(20) 药品编号Variable characters(20) 入库数量 Integer入库单价Float...0,n供应商供应商编号<pi> Variable characters (20)<M>供应商名称Variable characters (80)拼音编码Variable characters (10)供应商地址Variable characters (80)Identifier_1 <pi>销售客户销售流水号码Variable characters (20)客户编号<pi> Variable characters (20)<M> 销售单据号 Variable characters (20) 0,n 客户名称Variable characters (80)药品编号Variable characters (20)客户地址Variable characters (80)销售数量IntegerIdentifier_1 <pi>销售单价Float... ...0,n仓库药品编号<pi> Variable characters (50)<M>入库数量Integer销售数量Integer 0,n库存数量Integer盘点数量Integer盘点日期DateIdentifier_1 <pi>出库0,n入库0,n0,n用户用户ID <pi> Variable characters (20)<M>用户姓名Variable characters (50)用户口令Variable characters (50)用户权限Variable characters (50)Identifier_1 <pi>三、逻辑设计逻辑结构设计的目的是将ER 模型向关系模型转换,注意转换时关系的主键、外键的设置以保持原有的ER 模型中实体与实体之间的关系,另外还应当进行规范化处理以消除数据冗余。
药品进销存管理系统数据库设计一、基本分析1.1数据库环境说明采用的数据库系统:mysql编程工具:MyEclipse8.0数据库建模工具:powerdesigner151.2 基本功能分析本设计要实现的是药品进销存管理系统,在设计该系统时,应尽可能贴近实际、便于用户操作.系统在实现上应该具有如下功能:1.系统要提示用户必须输入正确的用户名和密码才能进入系统.2. 其功能模块图如下:二、概念设计在需求分析的基础上,我们对药品进销存管理系统有了一定的了解。
在分析设计概念模型时,首先找出模型所需的实体,然后找到各实体之间的关系,画出E—R模型图。
2.1、实体及其间的关系设计对于药品进销存系统,我们设计了药品,客户,供货商,仓库,操作员四个实体。
结合实际情况及对数据库设计的方便,各个实体之间的关系如下:供货商和药品之间应该是存在采购关联,它们之间为多对多关系。
仓库,药品之间存在存储关联,它们之间为多对多关系。
药品,客户之间存在销售关联,它们之间为多对多关系。
操作员,仓库之间存在药品入库和出库关联,它们之间为多对多关系。
2.2 E-R模型图的设计根据较为详细的需求分析,我们设计出了以下E-R模型图如下.三、逻辑设计逻辑结构设计的目的是将ER模型向关系模型转换,注意转换时关系的主键、外键的设置以保持原有的ER模型中实体与实体之间的关系,另外还应当进行规范化处理以消除数据冗余。
3.1 ER图向关系模型的转化(主键标志为<pk>)存在冗余的关系,根我们把它拆分成两张或更多张表3.2、E-R图转换成关系模型所遵循的原则我们把E-R图转换成关系模型所遵循的原则:1)每一个实体类型转换成一个关系模式。
如实体药品,客户,供货商,仓库,操作员,都可以转化成对应的一个关系模式。
关系模型的主键是E-R 模型的标识符,其他属性一样。
2)一个联系可转化为一个关系模式,那么,两端关系的标识符及该联系属性为关系的属性,而关系的标识符为两端实体标识符的组合。
3)我们还涉及到了引用完整性约束,也就是外键的约束,外码的约束贯穿着我们设计的始终,它把我们建立的关系紧密的联系在了一起。
4)我们对关系模式进行了消除数据冗余的处理。
应符合第三范式,不允许出现传递依赖、冗余、异常等等。
在逻辑设计中形成了关系表后需要对关系作规范化处理,使每个关系表至少满足第三范式的要求。
对违反第三范式的关系我们进行了分析并作了相应的调整。
对各关系模式之间的数据依赖进行了极小化处理,消除了冗余。
对违反第三范式的关系模式进行了必要的分解和合并。
3.3 表汇总各表信息四、物理设计4.1 索引设计关系属性A上的索引是一种数据结构,它可以提高查找在属性A上具有某个特定值的元组的效率。
索引通常有助于包含有属性A和常量的查询,但当关系变化很大时,通过扫描关系中所有的元组来找出那些匹配给定条件的元组的操作方式代价太高。
故我们设计索引需要对下两方面折中选择。
首先,对某个属性使用索引能极大的提高对该属性值的检索效率,使用该属性时,还可以加快连接。
其次,对关系上某个属性的索引会使得对关系的插入、删除、修改变得复杂和费时。
因此经过分析本系统的功能和需求可知,本系统的药品表中的记录可能相当的庞大,而且基于药品名称或编码的查询和修改相当的频繁,加之在数据库更新和维护过程中对供货商的更新和查询也比较的频繁,而且供货商的数量也可能比较大,综合考量后应为本系统建立如下3个索引,以达到操作的便捷和系统功能的优化。
各表中建立索引的表项:create unique index khbh_index on tb_client_jbqkb(khbh);create unique index gysbh_index on tb_gys_jbqkb(gysbh);create unique index ypbh_index on tb_medicine_jbqkb(ypbh);create unique index userid_index on tb_username(userid);五、安全性设计角色与权限设立两种级别用户Administrator,Superuser.对每种类型的用户设置不同的权限. Administrator:提供对系统的实际操作功能(适于仓库管理人员)Superuser:拥有系统的一切权限(适于总经理,系统维护管理人员)六、用SQL实现设计经数据库建模后,由模型导出数据库的SQL语言,将SQL语言导入到MySQL数据库中建立所有的数据表。
/*==================================================== ==========*//* Table: tb_buy_detaile *//*==================================================== ==========*/create table tb_buy_detaile(rklsh int not null auto_increment,rkdjh varchar(20),ypbh varchar(20),rksl int,rkdj float,rkje float,rkrq datetime,kcsl int,kcsts char(4),primary key (rklsh));/*==================================================== ==========*//* Table: tb_buy_main *//*==================================================== ==========*/create table tb_buy_main(rkdjh varchar(20) not null,pzs int,rksl int,rkje float,rkrq datetime,jbr varbinary(10),sts varchar(2),gysbh varchar(20),primary key (rkdjh));/*==================================================== ==========*//* Table: tb_client_hkqk *//*==================================================== ==========*/create table tb_client_hkqk(hklsh varchar(20) not null,xslsh int ,khbh varchar(20),hkrq datetime,qkje decimal(2,0),skhj decimal(2,0),ljye decimal(2,0),primary key (hklsh));/*==================================================== ==========*//* Table: tb_client_jbqkb *//*==================================================== ==========*/create table tb_client_jbqkb(khbh varchar(20) not null,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),primary key (khbh));/*==================================================== ==========*//* Table: tb_gys_jbqkb *//*==============================================================*/create table tb_gys_jbqkb(gysbh varchar(20) not null,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),primary key (gysbh));/*==================================================== ==========*//* Table: tb_medicine_jbqkb *//*==================================================== ==========*/create table tb_medicine_jbqkbypbh varchar(20) not null, 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),primary key (ypbh));/*==================================================== ==========*//* Table: tb_sell_detaile *//*==================================================== ==========*/create table tb_sell_detaile(xslsh int not null auto_increment,ypbh varchar(20),xsdjh varchar(20),xssl int,xsdj float,xsje float,xsrq datetime,thsts char(10),primary key (xslsh));/*==================================================== ==========*//* Table: tb_sell_detaile_th *//*==================================================== ==========*/create table tb_sell_detaile_th(xslsh varchar(50) not null,ypbh varchar(50),thsl int,thrq datetime,thje float,jbr varchar(50),primary key (xslsh));/*==================================================== ==========*//* Table: tb_sell_main *//*==================================================== ==========*/create table tb_sell_main(xsdjh varchar(20) not null,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,primary key (xsdjh));/*==================================================== ==========*//* Table: tb_stock *//*==================================================== ==========*/create table tb_stockypbh varchar(50) not null,rksl int,xssl int,kcsl int,pdsl int,pdrq datetime,primary key (ypbh));/*==================================================== ==========*//* Table: tb_username *//*==================================================== ==========*/create table tb_username(userid varchar(20) not null,username varchar(50),password varchar(50),passconf varchar(50),primary key (userid)在MySQL数据库中建立各表项:。