小超市系统数据库实验报告——设计与实现过程解析 (小超市系统数据库实验报告)

一、实验目的和背景

目的:本次实验的目的是设计和实现一个小超市系统的数据库,以应对实际需求和应用场景,实现数据的高效保存、查询和管理。

背景:随着社会的发展和科技的不断进步,商业领域的发展越来越快速,超市作为一个现代化商业形式,在我们的生活中扮演着重要的角色。为了适应市场快速变化和消费者对服务质量的要求越来越高,各大超市对于信息化建设越来越注重。数据库则是完成信息化建设的基础和核心。

二、实验设计与实施

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年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/282185.html<

(0)
管理的头像管理
上一篇2025-05-13 08:34
下一篇 2025-05-13 08:35

相关推荐

  • 站群服务器到底是什么意思,怎么选择比较好

    站群服务器就是一台拥有多个独立IP地址、专门用于托管和管理多个网站的高性能服务器,其核心价值在于通过独立IP降低网站间的关联风险,并提升搜索引擎优化效果,站群服务器的工作原理与适用场景站群服务器本质上是将一台物理服务器通过虚拟化或直接配置的方式,分配给多个独立IP地址,每个IP对应一个独立的网站,这些网站共享服……

    2026-07-27
    0
  • 高防服务器误封正常流量如何调整,怎么解决?

    高防服务器误封正常流量,核心调整思路是从“一刀切”转向“精细化”——通过分析业务特征,调整防护阈值、配置白名单和启用智能学习模式,让防护系统学会区分真假流量,为什么会误封正常流量误封主要源于防护策略的通用化,高防服务器通常默认启用严格防护规则,当流量特征与攻击特征库部分匹配时,就会被拦截,据行业安全白皮书指出……

    2026-07-27
    0
  • 高防服务器的防御原理是什么,如何选择高防服务器?

    高防服务器的防御原理,简单说就是通过流量清洗、防火墙规则和黑洞路由等机制,在攻击流量到达业务服务器之前将其过滤或阻断,从而保障正常访问,流量清洗机制是核心防线高防服务器对抗DDoS攻击,靠的不是单一技术,而是一套组合动作,最常见的攻击类型是流量型攻击,比如UDP洪水、SYN洪水、ICMP放大等,核心思路是耗尽带……

    2026-07-26
    0
  • BGP线路到底是什么意思呢,有什么优势?

    BGP线路是一种通过边界网关协议实现多运营商网络互联的接入方式,能自动选择最优路径,极大提升跨网访问速度和稳定性,是解决国内南北网络瓶颈的核心方案,什么是BGP线路BGP,全称Border Gateway Protocol,边界网关协议,是互联网核心路由协议之一,它负责在自治系统之间交换网络可达性信息,BGP线……

    2026-07-26
    0
  • 增值电信业务经营许可证对IDC有多重要,如何办理?

    增值电信业务经营许可证是IDC服务商合法运营的核心凭证,它直接决定了机房能否接入骨干网、客户能否放心托管业务,以及服务商自身能否长期稳定发展,许可证是IDC进入市场的硬门槛互联网数据中心业务属于增值电信业务中的B1类,依据工信部《电信业务经营许可管理办法》,任何从事服务器托管、虚拟主机、云服务等业务的企业,必须……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注