目录

2023-05-24-数据库课程设计超市信息管理系统

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

目录


数据库课程设计

课程名称:

数据库课程设计

设计题目:

超市信息管理系统

专业班级:

学    号:

学生姓名:

指导教师:

年    月   日

一、需求分析

1、系统需求分析描述

1.1.1系统需求说明:

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

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

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

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

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

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

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

1.1.2系统可行性分析:

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

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

1.1.3系统应用范围:

各种中小型超市皆可运用

2、系统功能结构图

https://i-blog.csdnimg.cn/blog_migrate/a26ceb949d8e9da3d7e3bb1b13aa2bf5.png

3、业务流程图

https://i-blog.csdnimg.cn/blog_migrate/31da989c48bdc51c517b8bce2ed29d9d.png

二、概念结构设计

1.实体描述

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

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

2.局部E-R图

2.2.1员工页面

https://i-blog.csdnimg.cn/blog_migrate/5cee596ac6441d9546ad5bebd49fa6d7.png

2.2.2库存页面

https://i-blog.csdnimg.cn/blog_migrate/9bd61767572cfab9d2dbf344a314306d.png

2.2.3仓库界面

https://i-blog.csdnimg.cn/blog_migrate/80d7554a7d8537d7c6fa22ccb2482333.png

2.2.4商品界面

https://i-blog.csdnimg.cn/blog_migrate/f3ed0d2c1239cc52a529a65bbd7deee4.png

2.2.5商品类型界面

https://i-blog.csdnimg.cn/blog_migrate/24c5fe689101dc001860932ebb25ffc9.png

2.2.6供应商页面

https://i-blog.csdnimg.cn/blog_migrate/a0208ff76389979b96a7cac39a598411.png

3、全局E-R图

https://i-blog.csdnimg.cn/blog_migrate/cb8a276c9cfa1bb9750ba0e5dc9516ba.png

三、逻辑结构设计

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.2.1员工信息表

字段名数据类型长度约束备注
employee_idint6主键员工编号
employee_namevarchar40非空员工姓名
employee_sexvarchar40非空员工性别
employee_agevarchar100非空员工年龄
employee_titlevarchar40非空员工职务
entry_datedatetime入职日期

3.2.2库存信息表

字段名数据类型长度约束备注
idint1主键库存编号
goods_idvarchar100主键商品编号
goods_namevarchar40非空商品名称
goods_pricedecimal(8,4)非空商品价格
store_goods_numvarchar40非空库存商品数量
storehouse_idvarchar100非空仓库编号
storage_timedatetime进货时间
delivery_timedatetime出货时间
delivery_numvarchar40出货数量

3.2.3仓库信息表

字段名数据类型长度约束备注
storehouse_idint5主键仓库编号
storehouse_namevarchar40非空仓库名称

3.2.4商品信息表

字段名数据类型长度约束备注
goods_idint1主键商品编号
goods_namevarchar20非空商品名称
goods_pricevarchar(6,2)非空商品价格
goodtypevarchar外键商品类别

3.2.5商品类别信息表

字段名数据类型长度约束备注
type_idint1主键商品类型编号
type_namevarchar20非空商品类型名称
contentvarchar50商品类型注意事项

3.2.6供应商信息表

字段名数据类型长度约束备注
Supplier_idint1主键供应商编号
Supplier_namevarchar40非空供应商姓名
Supplier_telephonevarchar20非空供应商电话号码
Supplier_addressvarchar60非空供应商地址

四、数据库实施

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_name

ORDER BY num DESC;

五、总结

68747470:733a2f2f626c6f672e6373646e2e6e65742f7968313030392f:61727469636c652f64657461696c732f313330383537353432