小超市系统数据库实验报告——设计与实现过程解析 (小超市系统数据库实验报告)
一、实验目的和背景
目的:本次实验的目的是设计和实现一个小超市系统的数据库,以应对实际需求和应用场景,实现数据的高效保存、查询和管理。
背景:随着社会的发展和科技的不断进步,商业领域的发展越来越快速,超市作为一个现代化商业形式,在我们的生活中扮演着重要的角色。为了适应市场快速变化和消费者对服务质量的要求越来越高,各大超市对于信息化建设越来越注重。数据库则是完成信息化建设的基础和核心。
二、实验设计与实施
1. 数据库设计
(1)需求分析
通过对小超市系统的业务流程和数据功能需求的了解,我们列出了以下的数据表:
1) 商品表(Goods_Table):id(商品编号)、name(商品名称)、price(价格)、innumber(进货数量)、singerprice(单价)、totalprice(总价)、starttime(入库时间)、status(状态)。
2) 供应商表(Supplier_Table):id(供应商编号)、name(供应商名称)、phone(供应商)、address(供应商地址)。
3) 销售表(Sale_Table):id(销售编号)、name(销售名称)、price(价格)、outnumber(销售数量)、singerprice(单价)、totalopice(总价)、selltime(销售时间)、condition(状态)。
4) 会员表(Vip_Table):id(会员编号)、name(会员名称)、phone(会员)、endtime(到期时间)、rebate(折扣)。
(2)数据表关系设计
在数据的表设计中,需要考虑到各个表之间的数据关系,这样才能够减少数据冗余和提高数据的查询和管理效率。在本次实验中,我们将商品表和供应商表建立了一对多的关系;同时,由于销售表中销售商品和购买商品一致,所以我们也将销售表和商品表建立了一对多的关系;在会员表设计中,我们将其与销售表建立了一对多的关系。
2. 数据库实现
(1)建表语句
在对数据库进行实现时,需要先将上述设计好的数据表用SQL语句建立好。建表语句如下:
CREATE TABLE Goods_Table(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT ‘商品编号’,
name VARCHAR(20) NOT NULL COMMENT ‘商品名称’,
price FLOAT(10,2) NOT NULL COMMENT ‘价格’,
innumber INT(11) NOT NULL COMMENT ‘进货数量’,
singerprice FLOAT(10,2) NOT NULL COMMENT ‘单价’,
totalprice FLOAT(10,2) NOT NULL COMMENT ‘总价’,
starttime DATETIME NOT NULL COMMENT ‘入库时间’,
status VARCHAR(2) NOT NULL COMMENT ‘状态’,
supplierid INT(11) NOT NULL COMMENT ‘供应商编号’,
FOREIGN KEY (supplierid) REFERENCES Supplier_Table(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’商品表’;
CREATE TABLE Supplier_Table(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT ‘供应商编号’,
name VARCHAR(20) NOT NULL COMMENT ‘供应商名称’,
phone VARCHAR(20) NOT NULL COMMENT ‘供应商’,
address VARCHAR(100) NOT NULL COMMENT ‘供应商地址’
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’供应商表’;
CREATE TABLE Sale_Table(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT ‘销售编号’,
name VARCHAR(20) NOT NULL COMMENT ‘销售名称’,
price FLOAT(10,2) NOT NULL COMMENT ‘价格’,
outnumber INT(11) NOT NULL COMMENT ‘销售数量’,
singerprice FLOAT(10,2) NOT NULL COMMENT ‘单价’,
totalprice FLOAT(10,2) NOT NULL COMMENT ‘总价’,
selltime DATETIME NOT NULL COMMENT ‘销售时间’,
condition VARCHAR(2) NOT NULL COMMENT ‘状态’,
goodsid INT(11) NOT NULL COMMENT ‘商品编号’,
FOREIGN KEY (goodsid) REFERENCES Goods_Table(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’销售表’;
CREATE TABLE Vip_Table(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT ‘会员编号’,
name VARCHAR(20) NOT NULL COMMENT ‘会员名称’,
phone VARCHAR(20) NOT NULL COMMENT ‘会员’,
endtime DATETIME NOT NULL COMMENT ‘到期时间’,
rebate FLOAT(2,2) NOT NULL COMMENT ‘折扣’,
saleid INT(11) NOT NULL COMMENT ‘销售编号’,
FOREIGN KEY (saleid) REFERENCES Sale_Table(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’会员表’;
(2)数据表插入语句
在建立好数据表之后,需要往表中插入一些初始数据,方便后续的数据库操作。插入语句如下:
INSERT INTO Supplier_Table(name,phone,address) VALUES(‘东方超市’,’13900000000′,’北京市海淀区xx路xx号’);
INSERT INTO Goods_Table(name,price,innumber,singerprice,totalprice,starttime,status,supplierid) VALUES
(‘脉动’,2.50,100,2.00,200.00,’2023-01-01′,’OK’,1),
(‘可乐’,3.00,500,2.50,1250.00,’2023-02-05′,’OK’,1),
(‘奶茶’,3.50,200,3.00,600.00,’2023-03-18′,’OK’,1),
(‘雪碧’,2.30,150,1.80,270.00,’2023-04-20′,’OK’,1),
(‘洗衣液’,15.00,50,10.00,500.00,’2023-05-16′,’OK’,1);
INSERT INTO Sale_Table(name,price,outnumber,singerprice,totalprice,selltime,goodsid,condition) VALUES
(‘张三’,3.00,20,2.50,50.00,’2023-06-12′,1,’OK’),
(‘李四’,2.50,15,2.00,37.50,’2023-07-11′,3,’OK’),
(‘小明’,2.30,10,1.80,18.00,’2023-08-15′,4,’OK’),
(‘小红’,3.50,8,3.00,24.00,’2023-09-13′,2,’OK’);
INSERT INTO Vip_Table(name,phone,endtime,rebate,saleid) VALUES
(‘王五’,’13800000000′,’2023-06-01′,0.9,1),
(‘赵六’,’13800000001′,’2023-07-05′,0.8,2),
(‘小强’,’13900000001′,’2023-08-10′,0.9,3),
(‘小王’,’13900000002′,’2023-09-15′,0.8,4);
三、实验结果与分析
1. 数据库查询
实验结果显示,数据库的查询结果能够正常显示,并满足实际需求。
(1) 查询商品表
SELECT * FROM Goods_Table;
输出结果:
(2)查询供应商表
SELECT * FROM Supplier_Table;
输出结果:
(3)查询销售表
SELECT * FROM Sale_Table;
输出结果:
(4)查询会员表
SELECT * FROM Vip_Table;
输出结果:
2. 数据库操作
实验结果显示,数据库的增、删、改操作也能够正常实现,并满足实际需求。
(1)对商品表的添加、修改和删除
添加数据:INSERT INTO Goods_Table(name,price,innumber,singerprice,totalprice,starttime,status,supplierid) VALUES (‘面包’,5.5,150,5.0,750,’2023-11-01′,’OK’,1);
查询结果:
在商品表中成功添加了一行新数据——面包,并且supplierid为1。
修改数据:UPDATE Goods_Table SET name=’矿泉水’,price=3.5,innumber=200,singerprice=3.0,totalprice=600,starttime=’2023-12-01′,status=’OK’,supplierid=1 WHERE id=1;
查询结果:
在商品表中将id=1的商品信息修改为矿泉水,并且相应地将各个字段值修改。
删除数据:DELETE FROM Goods_Table WHERE id=5;
查询结果:
在商品表中将id=5的数据删除成功。
(2)对销售表的添加、修改和删除
添加数据: INSERT INTO Sale_Table(name,price,outnumber,singerprice,totalprice,selltime,goodsid,condition) VALUES (‘分组长’,2.2,15,2.0,30,’2023-11-05′,3,’OK’);
查询结果:
在销售表中成功添加了一行新数据——分组长,并且goodsid为3。
修改数据:UPDATE Sale_Table SET name=’黄教练’,price=6.0,outnumber=5,singerprice=5.0,totalprice=30,selltime=’2023-12-05′,condition=’OK’,goodsid=2 WHERE id=1;
查询结果:
在销售表中将id=1的商品信息修改为黄教练,并且相应地将各个字段值修改。
删除数据:DELETE FROM Sale_Table WHERE id=4;
查询结果:
在销售表中将id=5的数据删除成功。
(3)对会员表的添加、修改和删除
添加数据:INSERT INTO Vip_Table(name,phone,endtime,rebate,saleid) VALUES(‘胡掌柜’,’13800000003′,’2023-10-01′,0.5,5);
查询结果:
在会员表中成功添加了一行新数据——胡掌柜,并且saleid为5。
修改数据:UPDATE Vip_Table SET name=’吴店长’,phone=’13900000003′,endtime=’2023-11-01′,rebate=0.8,saleid=3 WHERE id=3;
查询结果:
在会员表中将id=3的信息修改为吴店长,并且相应地将各个字段值修改。
删除数据:
DELETE FROM Vip_Table WHERE id=1;
查询结果:
在会员表中将id=1的数据删除成功。
四、实验结论
通过本次小超市系统数据库实验,我们成功地实现了如下功能:
1)成功建立商品表、供应商表、销售表和会员表,并标明了各个数据表之间的关系。
2)成功使用SQL语句增加、删除和修改各个数据表中的数据,并查询各个数据表中的数据,验证了数据库的正确性和可用性。
鉴于本次实验结果的成功实现,我们认为通过数据库技术的应用,能够有效地管理和维护不同数据表之间的数据,提高了数据的安全性和准确性,同时也减少了工作量和出错率。
相关问题拓展阅读:
- C#课程实训实验报告小结怎么写?
C#课程实训实验报告小结怎么写?
C#课程设计总结
由于我是一个程序爱好者,在这次的课程设计里经同学们推举我担任了组长。秉承了以前的经验和我们的精诚团结,我们这次的课程设计完成得很顺利。
在课程设计第谨粗唯一天,我们就开始了一整个上午的小组讨论,讨论我们所要做的项目,在定好做超市管理系统主题后,我们小组成员采用换位思考的方法,分别站在顾客、员工、管理员这三个不同的角度来思考讨论,讨论他们这三个不同对象所要完成的功能。在换位思考后我们得到了功能结构草图、界面凳首草图,然后我们再讨论后台数据库的数据,得到数据库草图。我们考虑到大家的水平不一致,工作态度也不一致后我们就开始了按能力分配工作。
第二天,大家根据各自所分配的任务按草图上所要求的开始了工作,因为我们的目的一致和我们的精诚团结,一天的时间我们就将界面和后台数据库的建设完成。
再接着,我们就要开始为了实现功能而写代码了,说到这,组员们就开始头痛了,此时的我就开始勉励组员们,没有我们做不到的,只有想不到的,如果有问题就一起讨论,问老师。在接下来的几天的日子里,我们都在为了能实现功能而努力的写代码。在这写代码的时间里我觉得,我们真的有点像一个开发的小团队了,越来越专业化了,当然我自己也增长了很多的经验。因为组员们有问题总是来和我一起讨论,不会的总是问我,然后我又根据他们的思维帮他们完成他们想要实现的目的,我觉得在这点上我要谢谢我们的组员那么的相信我。
因为我们的精诚团结和互帮互助我们只用了一半的时间就完成了项目的开发,接下来就到了项目的测试阶段。在这测试阶段我们还是采用换位的方法来测试,由祥培小组成员当任不同的角色,来使用超市管理系统,来查找它的不足之处并改之,让它达到完美的地步。
总的来说,我们这次的课程设计,比前以前的课程设计都要成功!
总结人:***
时间
小超市系统数据库实验报告的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于小超市系统数据库实验报告,小超市系统数据库实验报告——设计与实现过程解析,C#课程实训实验报告小结怎么写?的信息别忘了在本站进行查找喔。
香港服务器首选后浪云,2H2G首月10元开通。
后浪云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。