数据库课程设计超市信息管理系统

目录

一、需求分析

1、系统需求分析描述

1.1.1系统需求说明:

1.1.2系统可行性分析:

1.1.3系统应用范围:

2、系统功能结构图

3、业务流程图

二、概念结构设计

1.实体描述

2.局部E-R图

 2.2.1员工页面

2.2.2库存页面

2.2.3仓库界面 

 2.2.4商品界面

2.2.5商品类型界面 

 2.2.6供应商页面

3、全局E-R图 

三、逻辑结构设计

1.E-R图转换到关系模式

2.数据字典、表结构设计(表清单和各表字段信息列表)

3.2.1员工信息表

3.2.2库存信息表

3.2.3仓库信息表

3.2.4商品信息表

3.2.5商品类别信息表

3.2.6供应商信息表

四、数据库实施

1.使用SQL语句完成表的创建

4.1.1员工表的创建

4.1.2库存信息表的创建

4.1.3仓库信息表的创建

4.1.4商品信息表的创建

4.1.5商品类型信息表的创建

4.1.6供应商类型信息表的创建

2.使用SQL语句完成表数据的添加

4.2.1员工表数据的添加

4.2.2库存表数据的添加

4.2.3仓库表数据的添加

4.2.4商品表数据的添加

4.2.5商品类型表数据的添加

4.2.6供应商表数据的添加

3.使用SQL语句自定义创建视图

4.3.1员工表的视图

4.3.2库存表的视图

4.3.3仓库表的视图

4.3.4商品表的视图

4.3.5商品类型的视图

4.3.6供应商表的视图

4.使用SQL语句自定义完成增删改查操作

4.4.1进行表内容的增加

4.4.2进行表内容的删除

4.4.3进行表内容的修改

4.4.4进行表的查找

五、总结


数据库课程设计

课程名称:    数据库课程设计                        

设计题目:   超市信息管理系统                         

专业班级:                                                        

学    号:                                                              

学生姓名:                                                               

指导教师:                                                                   

年    月   日

一、需求分析

1、系统需求分析描述

1.1.1系统需求说明:

       随着技术的发展,超市的竞争进入了一个全新的时代,超市与超市之间的竞争不再是规模的竞争而是技术、人才与管理的竞争。技术与管理的提升是超市竞争的核心,所以市场对超市信息管理系统的需求还是比较大的。

       超市信息管理系统是管理超市信息的一种系统其功能包括员工管理、库存管理、商品管理、仓库管理以及进货管理。

       员工管理:对超市的员工信息进行管理,包括查询、更新等功能;

       库存管理:对超市采购的商品进行编码入库,能够根据销售清单进行出货管理以及库存统计;

       商品管理:对超市采购来的商品进行分类,标注需要注意的注意事项,能够更好的帮助超市管理者管理超市;

       仓库管理:让超市管理者能够更好的清楚各个仓库的情况;

       进货管理:对供应商信息进行管理,实施产品采购,并进行进货查询。

1.1.2系统可行性分析:

       现在生活中的超市大型超市比较多,导致员工雇佣多、商品信息多、仓库管理麻烦等诸多情况,若这些情况均用纸面记录的方式,会花费超市管理人更多的精力与财力,而我的超市信息管理系统通过互联网查询和更新销售信息快捷、方便,仅用一两个人就能做到,可以减少不必要的开支,提高了查询效率。从经济与效率方面来说我的超市信息管理系统是可行的。

       而这个系统也比较简单,开发者不需要投入过多的精力与时间,所以在开发者的角度来看这个超市信息管理系统是可行的。

1.1.3系统应用范围:

各种中小型超市皆可运用

2、系统功能结构图

3、业务流程图

二、概念结构设计

1.实体描述

 该超市信息管理系统的抽象实体有六个 

  1. 员工实体属性:员工编号,姓名,性别,年龄,职务,入职日期;
  2. 库存实体属性:库存编号,商品编号,商品名称,商品价格,库存商品数量,仓库编号,商品入库时间,商品出库时间,商品出库数量;
  3. 仓库实体属性:仓库编号,仓库姓名;
  4. 商品实体属性:商品编号,名称,价格,商品类型;
  5. 商品类型实体属性:商品类型编号,类型名称,商品注意事项;
  6. 供货商实体属性:供货商编号,姓名,电话,地址。

2.局部E-R图

 2.2.1员工页面

2.2.2库存页面

2.2.3仓库界面 

 

 2.2.4商品界面

2.2.5商品类型界面 

 2.2.6供应商页面

3、全局E-R图 

三、逻辑结构设计

1.E-R图转换到关系模式

        供应商与库存之间是多对多的联系类型,因此,将供应商、库存以及供货联系分别设计成如下的关系模式:

        供应商(供应商编号,姓名,电话,地址)

       库存(库存编号,商品编号,商品名称,商品价格,库存数量,仓库编号,商品入库时间,商品出库时间,商品出库数量)

        供货(供应商编号,库存编号,供货日期,供货价格)

        库存与仓库也是多对多的联系类型,由于“库存”关系模式上方已经给出,所以只需要给出一个仓库的关系模式即可,它们间的联系则被放在该关系模式中:

        仓库(仓库编号,仓库名称)

       员工对商品也是多对多的联系类型,不同的员工可以销售并查询不同的商品,因此,将员工、商品以及销售联系分别设计成如下的关系模式:

       员工(员工编号,员工姓名,性别,年龄,职务,入职日期)

       商品(商品编号,名称,价格,商品类型)

       销售(员工职务,商品名称,价格)

       一个商品类型可以对应多个商品,所以说商品与商品类型之间是一对多的联系类型。也就可以用两个关系模式来进行表示。由于“商品”关系模式在上方已经给出,所以只需要给出商品类型的关系模式即可,它们间的联系则被放在该关系模式中:

        商品类型(商品类型编号,类型名称,商品注意事项)

        一个仓管可以管理多个仓库,所以说员工与仓库之间的管理是一对多的联系类型。

2.数据字典、表结构设计(表清单和各表字段信息列表)

3.2.1员工信息表

字段名

数据类型

长度

约束

备注

employee_id

int

6

主键

员工编号

employee_name

varchar

40

非空

  员工姓名

employee_sex

  varchar

40

非空

  员工性别

employee_age

  varchar

100

非空

  员工年龄

employee_title

  varchar

40

非空

  员工职务

entry_date

  datetime

  入职日期

3.2.2库存信息表

字段名

数据类型

长度

约束

备注

id

int

1

主键

库存编号

goods_id

varchar

100

主键

  商品编号

goods_name

varchar

40

非空

  商品名称

goods_price

decimal

(8,4)

非空

  商品价格

store_goods_num

varchar

    40

非空

 库存商品数量

storehouse_id

varchar

100

非空

 仓库编号

storage_time

datetime

 进货时间

delivery_time

datetime

  出货时间

delivery_num

varchar

40

 出货数量

3.2.3仓库信息表

字段名

数据类型

长度

约束

备注

storehouse_id

    int

5

主键

仓库编号

storehouse_name

varchar

40

非空

  仓库名称

3.2.4商品信息表

字段名

数据类型

    长度

约束

备注

goods_id

int

1

主键

商品编号

goods_name

varchar

20

非空

商品名称

goods_price

varchar

(6,2)

非空

商品价格

goodtype

varchar

外键

商品类别

3.2.5商品类别信息表

字段名

数据类型

长度

约束

备注

type_id

int

1

主键

商品类型编号

type_name

varchar

20

非空

商品类型名称

content

varchar

50

商品类型注意事项

3.2.6供应商信息表

字段名

数据类型

长度

约束

备注

Supplier_id

int

1

主键

 供应商编号

Supplier_name

varchar

40

非空

供应商姓名

Supplier_telephone

varchar

20

非空

供应商电话号码

Supplier_address

varchar

60

非空

供应商地址

四、数据库实施

1.使用SQL语句完成表的创建

4.1.1员工表的创建

CREATE TABLE s_employee(

employee_id int UNSIGNED auto_increment,

employee_name VARCHAR(40) NOT NULL,

employee_sex VARCHAR(40) NOT NULL,

employee_age VARCHAR(100) NOT NULL,

employee_title VARCHAR(40) NOT NULL,

entry_date DATE,

PRIMARY KEY(employee_id)

);

4.1.2库存信息表的创建

CREATE TABLE `s_stock`(

`id` INT UNSIGNED auto_increment,

`goods_id` VARCHAR(100) NOT NULL,

`goods_name` VARCHAR(40) NOT NULL,

`goods_price` DECIMAL(8,4),

`store_goods_num` VARCHAR(40) NOT NULL,

`storehouse_id` VARCHAR(100) NOT NULL,

`storage_time` date,

`delivery_time` date,

`delivery_num` VARCHAR(40),

PRIMARY KEY (`id`, `goods_id`)

);

4.1.3仓库信息表的创建

CREATE TABLE `s_storehouse`(

`storehouse_id` INT UNSIGNED auto_increment,

`storehouse_name` VARCHAR(40) NOT NULL,

PRIMARY KEY (`storehouse_id`)

)ENGINE=InnoDB DEFAULT charset=utf8;

4.1.4商品信息表的创建

CREATE TABLE s_goods(

goods_id INT PRIMARY KEY auto_increment,

goods_name VARCHAR (20) NOT NULL,

goods_price DECIMAL (6,2) NOT NULL,

goodstype INT,

CONSTRAINT id_fk FOREIGN KEY(goodstype) REFERENCES s_goodstype(type_id)

);

4.1.5商品类型信息表的创建

CREATE TABLE s_goodstype(

type_id INT PRIMARY KEY auto_increment,

type_name VARCHAR (20) NOT NULL,

content VARCHAR (50)

);

4.1.6供应商类型信息表的创建

CREATE TABLE s_supplier(

supplier_id int UNSIGNED auto_increment,

supplier_name VARCHAR(40) NOT NULL,

supplier_telephone VARCHAR (20) NOT NULL,

supplier_address VARCHAR(60) NOT NULL,

PRIMARY KEY(supplier_id)

);

2.使用SQL语句完成表数据的添加

4.2.1员工表数据的添加

insert into s_employee VALUES (629001,'张三','男',28,'登记员','2022-06-20');

insert into s_employee VALUES (629002,'李四','男',34,'仓管','2021-07-10');

insert into s_employee VALUES (629003,'王五','男',45,'财务','2020-04-20');

insert into s_employee VALUES (629004,'李牛','男',24,'货运','2022-09-21');

insert into s_employee VALUES (629005,'马丁','男',28,'搬运','2022-06-20');

insert into s_employee VALUES (629006,'牛七','男',29,'收银员','2021-07-20');

4.2.2库存表数据的添加

INSERT INTO s_stock VALUES (1, 11000,'海飞丝洗发水',65.00,87,22000,'2022-04-07','2022-04-27',20);

INSERT INTO s_stock VALUES (2, 11000,'海飞丝洗发水',65.00,52,22001,'2022-04-07','2022-04-19',10);

INSERT INTO s_stock VALUES (3, 11001,'黑人牙膏',18.00,20,22003,'2021-12-12','2022-01-17',20);

INSERT INTO s_stock VALUES (4, 11002,'丹姿护发素',29.00,103,22003,'2020-11-07','2020-11-11',88);

INSERT INTO s_stock VALUES (5, 11003,'蓝月亮洗衣液',49.00,64,22002,'2021-05-01','2021-06-18',50);

INSERT INTO s_stock VALUES (6, 11004,'洁柔抽纸',69.00,200,22004,'2022-01-01','2022-04-03',180);

INSERT INTO s_stock VALUES (7, 11005,'洗面奶',38.00,370,22005,'2022-02-16','2022-05-27',108);

INSERT INTO s_stock VALUES (8, 11006,'护手霜',25.00,123,22002,'2021-10-01','2021-11-11',108);

INSERT INTO s_stock VALUES (9, 11006,'太谷饼',15.00,103,22004,'2021-11-01','2021-12-11',18);

INSERT INTO s_stock VALUES (10, 11006,'可口可乐',4.00,223,22000,'2022-10-01','2022-11-11',208);

INSERT INTO s_stock VALUES (11, 11006,'电动牙刷',125.00,323,22001,'2021-09-01','2021-09-11',128);

INSERT INTO s_stock VALUES (12, 11006,'香蕉',5.00,456,22000,'2022-09-01','2022-10-11',356);

INSERT INTO s_stock VALUES (13, 11006,'草莓',25.00,234,22003,'2022-02-01','2022-02-11',134);

4.2.3仓库表数据的添加

insert into s_storehouse VALUES (22000,'华中仓库1号');

insert into s_storehouse VALUES (22001,'华东仓库2号');

insert into s_storehouse VALUES (22002,'华南仓库3号');

insert into s_storehouse VALUES (22003,'华西仓库4号');

insert into s_storehouse VALUES (22004,'华北仓库5号');

4.2.4商品表数据的添加

INSERT INTO s_goods VALUES (1,'海飞丝洗发水',65.00,3);

INSERT INTO s_goods VALUES (2,'黑人牙膏',18.00,3);

INSERT INTO s_goods VALUES (3,'丹姿护发素',65.00,3);

INSERT INTO s_goods VALUES (4,'蓝月亮洗衣液',49.00,2);

INSERT INTO s_goods VALUES (5,'洁柔抽纸',69.00,2);

INSERT INTO s_goods VALUES (6,'洗面奶',38.00,3);

INSERT INTO s_goods VALUES (7,'护手霜',25.00,4);

INSERT INTO s_goods VALUES (8,'太谷饼',15.00,6);

INSERT INTO s_goods VALUES (9,'可口可乐',4.00,6);

INSERT INTO s_goods VALUES (10,'电动牙刷',125.00,1);

INSERT INTO s_goods VALUES (11,'香蕉',5.00,5);

INSERT INTO s_goods VALUES (12,'草莓',25.00,5);

4.2.5商品类型表数据的添加

INSERT INTO s_goodstype VALUES (1,'家用电器','电器类商品为高价值商品应重点维护');

INSERT INTO s_goodstype VALUES (2,'日常生活用品','日常生活用品种类复杂注意分类');

INSERT INTO s_goodstype VALUES (3,'洗漱用品','洗头的与洗脸的不要混乱摆放,给顾客造成不便');

INSERT INTO s_goodstype VALUES (4,'护肤品','各品牌护肤品摆放整齐');

INSERT INTO s_goodstype VALUES (5,'生鲜水果','保质期较短货架上的生鲜水果必须要是新鲜的');

INSERT INTO s_goodstype VALUES (6,'食品饮料','注意食品饮料的保质期,过期食品不要出现在货架上');

4.2.6供应商表数据的添加

INSERT INTO s_supplier VALUES (1,'赵六',13456727896,'杭州');

INSERT INTO s_supplier VALUES (2,'孙琪',13678765678,'西安');

INSERT INTO s_supplier VALUES (3,'牛八',13994987689,'福建');

INSERT INTO s_supplier VALUES (4,'李九',13245678967,'郑州');

INSERT INTO s_supplier VALUES (5,'张十',13776789567,'昆明');

INSERT INTO s_supplier VALUES (6,'钱九',13843567779,'重庆');

INSERT INTO s_supplier VALUES (7,'胡七',13564565656,'黑龙江');

3.使用SQL语句自定义创建视图

4.3.1员工表的视图

CREATE VIEW s_employee_view AS SELECT employee_name,employee_age from s_employee;

SELECT * FROM s_employee_view;

4.3.2库存表的视图

CREATE VIEW s_stock_view AS SELECT delivery_time,store_goods_num FROM s_stock;

SELECT * FROM s_stock_view;

4.3.3仓库表的视图

CREATE VIEW s_storehouse_view AS SELECT storehouse_id,storehouse_name FROM s_storehouse;

SELECT * FROM s_storehouse_view;

4.3.4商品表的视图

CREATE VIEW s_goods_view AS SELECT goods_name,goods_price FROM s_goods;

SELECT * FROM s_goods_view;

4.3.5商品类型的视图

CREATE VIEW s_goodstype_view AS SELECT type_name,content FROM s_goodstype;

SELECT * FROM s_goodstype_view;

4.3.6供应商表的视图

CREATE VIEW s_supplier_view AS SELECT supplier_name,supplier_address FROM s_supplier;

SELECT * FROM s_supplier_view;

4.使用SQL语句自定义完成增删改查操作

4.4.1进行表内容的增加

#在员工表员工id后面再添加一列任职仓库

ALTER TABLE s_employee ADD COLUMN storehouse_id VARCHAR(100)

NULL

AFTER employee_id;

4.4.2进行表内容的删除

#删除id=1的商品

DELETE FROM s_goods

WHERE goods_id = 1;

4.4.3进行表内容的修改

#将洁柔抽纸的价格修改为九折后的价格

UPDATE s_stock SET goods_price=ROUND(goods_price*0.9,4)WHERE goods_name='洁柔抽纸';

#把丹姿护发素的出库数量修改为3

UPDATE s_stock SET delivery_num=3 WHERE goods_name='丹姿护发素';

4.4.4进行表的查找

#显示各商品的出库数量,按出库数量有多到少排列

#ORDER BY

SELECT s.goods_name,SUM(s.delivery_num) AS num

FROM s_stock AS s

GROUP BY s.goods_id

ORDER BY num DESC;

五、总结

猜你喜欢

转载自blog.csdn.net/yh1009/article/details/130857542
今日推荐