目录
一、需求分析
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进行表的查找
五、总结
数据库课程设计
课程名称: 数据库课程设计
设计题目: 超市信息管理系统
专业班级:
学 号:
学生姓名:
指导教师:
年 月 日
随着技术的发展,超市的竞争进入了一个全新的时代,超市与超市之间的竞争不再是规模的竞争而是技术、人才与管理的竞争。技术与管理的提升是超市竞争的核心,所以市场对超市信息管理系统的需求还是比较大的。
超市信息管理系统是管理超市信息的一种系统其功能包括员工管理、库存管理、商品管理、仓库管理以及进货管理。
员工管理:对超市的员工信息进行管理,包括查询、更新等功能;
库存管理:对超市采购的商品进行编码入库,能够根据销售清单进行出货管理以及库存统计;
商品管理:对超市采购来的商品进行分类,标注需要注意的注意事项,能够更好的帮助超市管理者管理超市;
仓库管理:让超市管理者能够更好的清楚各个仓库的情况;
进货管理:对供应商信息进行管理,实施产品采购,并进行进货查询。
现在生活中的超市大型超市比较多,导致员工雇佣多、商品信息多、仓库管理麻烦等诸多情况,若这些情况均用纸面记录的方式,会花费超市管理人更多的精力与财力,而我的超市信息管理系统通过互联网查询和更新销售信息快捷、方便,仅用一两个人就能做到,可以减少不必要的开支,提高了查询效率。从经济与效率方面来说我的超市信息管理系统是可行的。
而这个系统也比较简单,开发者不需要投入过多的精力与时间,所以在开发者的角度来看这个超市信息管理系统是可行的。
各种中小型超市皆可运用
该超市信息管理系统的抽象实体有六个
供应商与库存之间是多对多的联系类型,因此,将供应商、库存以及供货联系分别设计成如下的关系模式:
供应商(供应商编号,姓名,电话,地址)
库存(库存编号,商品编号,商品名称,商品价格,库存数量,仓库编号,商品入库时间,商品出库时间,商品出库数量)
供货(供应商编号,库存编号,供货日期,供货价格)
库存与仓库也是多对多的联系类型,由于“库存”关系模式上方已经给出,所以只需要给出一个仓库的关系模式即可,它们间的联系则被放在该关系模式中:
仓库(仓库编号,仓库名称)
员工对商品也是多对多的联系类型,不同的员工可以销售并查询不同的商品,因此,将员工、商品以及销售联系分别设计成如下的关系模式:
员工(员工编号,员工姓名,性别,年龄,职务,入职日期)
商品(商品编号,名称,价格,商品类型)
销售(员工职务,商品名称,价格)
一个商品类型可以对应多个商品,所以说商品与商品类型之间是一对多的联系类型。也就可以用两个关系模式来进行表示。由于“商品”关系模式在上方已经给出,所以只需要给出商品类型的关系模式即可,它们间的联系则被放在该关系模式中:
商品类型(商品类型编号,类型名称,商品注意事项)
一个仓管可以管理多个仓库,所以说员工与仓库之间的管理是一对多的联系类型。
字段名 |
数据类型 |
长度 |
约束 |
备注 |
employee_id |
int |
6 |
主键 |
员工编号 |
employee_name |
varchar |
40 |
非空 |
员工姓名 |
employee_sex |
varchar |
40 |
非空 |
员工性别 |
employee_age |
varchar |
100 |
非空 |
员工年龄 |
employee_title |
varchar |
40 |
非空 |
员工职务 |
entry_date |
datetime |
入职日期 |
字段名 |
数据类型 |
长度 |
约束 |
备注 |
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 |
出货数量 |
字段名 |
数据类型 |
长度 |
约束 |
备注 |
storehouse_id |
int |
5 |
主键 |
仓库编号 |
storehouse_name |
varchar |
40 |
非空 |
仓库名称 |
字段名 |
数据类型 |
长度 |
约束 |
备注 |
goods_id |
int |
1 |
主键 |
商品编号 |
goods_name |
varchar |
20 |
非空 |
商品名称 |
goods_price |
varchar |
(6,2) |
非空 |
商品价格 |
goodtype |
varchar |
外键 |
商品类别 |
字段名 |
数据类型 |
长度 |
约束 |
备注 |
type_id |
int |
1 |
主键 |
商品类型编号 |
type_name |
varchar |
20 |
非空 |
商品类型名称 |
content |
varchar |
50 |
商品类型注意事项 |
字段名 |
数据类型 |
长度 |
约束 |
备注 |
Supplier_id |
int |
1 |
主键 |
供应商编号 |
Supplier_name |
varchar |
40 |
非空 |
供应商姓名 |
Supplier_telephone |
varchar |
20 |
非空 |
供应商电话号码 |
Supplier_address |
varchar |
60 |
非空 |
供应商地址 |
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)
);
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`)
);
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;
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)
);
CREATE TABLE s_goodstype(
type_id INT PRIMARY KEY auto_increment,
type_name VARCHAR (20) NOT NULL,
content VARCHAR (50)
);
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)
);
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');
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);
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号');
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);
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,'食品饮料','注意食品饮料的保质期,过期食品不要出现在货架上');
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,'黑龙江');
CREATE VIEW s_employee_view AS SELECT employee_name,employee_age from s_employee;
SELECT * FROM s_employee_view;
CREATE VIEW s_stock_view AS SELECT delivery_time,store_goods_num FROM s_stock;
SELECT * FROM s_stock_view;
CREATE VIEW s_storehouse_view AS SELECT storehouse_id,storehouse_name FROM s_storehouse;
SELECT * FROM s_storehouse_view;
CREATE VIEW s_goods_view AS SELECT goods_name,goods_price FROM s_goods;
SELECT * FROM s_goods_view;
CREATE VIEW s_goodstype_view AS SELECT type_name,content FROM s_goodstype;
SELECT * FROM s_goodstype_view;
CREATE VIEW s_supplier_view AS SELECT supplier_name,supplier_address FROM s_supplier;
SELECT * FROM s_supplier_view;
#在员工表员工id后面再添加一列任职仓库
ALTER TABLE s_employee ADD COLUMN storehouse_id VARCHAR(100)
NULL
AFTER employee_id;
#删除id=1的商品
DELETE FROM s_goods
WHERE goods_id = 1;
#将洁柔抽纸的价格修改为九折后的价格
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='丹姿护发素';
#显示各商品的出库数量,按出库数量有多到少排列
#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;
略