Mysql 设计超市经营管理系统,包括商品信息表(goods) 和 商品类型表(goodstype)

互联网技术学院周测机试题(一)

 

一  需求分析

为进一步完善连锁超市经营管理,提高管理效率,减少管理成本,决定开发一套商品管理系统,用于日常的管理。本系统分为商品管理、员工管理、店铺管理,库存管理等功能模块。本次开发,主要针对商品管理功能,具备添加商品,修改商品信息等功能,具体数据库设计如下,请你根据需求完成数据库的设计与相应功能。

二  数据字典

表1:商品信息表(goods)

序号

字段名

说明

数据类型

约束

备注

1

goodsid

商品编号

Int

主键,自动增长

 

2

goodsname

商品名称

Varchar

长度20,非空

 

3

Price

商品价格

Decimal

长度6,小数2

 

4

Goodstype

商品类型

Int

外键,引用商品类型表的主键

 

5

Place

商品产地

Varchar

长度50

 

CREATE TABLE goods(
goodsid int PRIMARY KEY auto_increment,
goodsname VARCHAR(20) NOT NULL,
price DECIMAL(6,2),
goodstype int,
place VARCHAR(50),
CONSTRAINT id_fk FOREIGN KEY(goodstype) REFERENCES goodstype(Typeid)
);

表2:商品类型表(goodstype)

序号

字段名

说明

数据类型

约束

备注

1

Typeid

类型编号

Int

主键,自动增长

 

2

Typename

类型名称

Varchar

长度20,非空

 

3

Content

备注

Varchar

长度50

 

CREATE TABLE goodstype(
Typeid int PRIMARY KEY auto_increment,
typename VARCHAR(20) NOT NULL,
content VARCHAR(50)
);

1、测试数据

Goods 表:

goodsid

goodsname

Price

Goodstype

Place

1

飞利浦SP100净化器

2500.00

1

武汉

2

山东红富士苹果(一级果)

12.50

3

山东

3

康师傅桶装方便面(红烧牛肉面)

4.50

2

杭州

4

格力NS-8823变频空调

2350.00

1

珠海

5

泰国山竹特级

25.00

3

泰国

INSERT INTO `goods` VALUES (1, '飞利浦SP100净化器', 2500.00, 1, '武汉');
INSERT INTO `goods` VALUES (2, '山东红富士苹果(一级果)', 12.50, 3, '山东');
INSERT INTO `goods` VALUES (3, '康师傅桶装方便面(红烧牛肉面)', 4.50, 2, '杭州');
INSERT INTO `goods` VALUES (4, '格力NS-8823变频空调', 2350.00, 1, '珠海');
INSERT INTO `goods` VALUES (5, '泰国山竹特级', 25.00, 3, '泰国');

goodsType 表:

Typeid

Typename

Content

1

家用电器

电器类商品为高价值商品,重点维护

2

食品饮料

注意加强检查

3

水果生鲜

 

INSERT INTO `goodstype` VALUES (1, '家用电器', '电器类商品为高价值商品,重点维护');
INSERT INTO `goodstype` VALUES (2, '食品饮料', '注意加强检查');
INSERT INTO `goodstype` VALUES (3, '水果生鲜', '');

2、功能实现

1、实现商品进货,商品名称“光明发酵酸奶500ml”,商品价格8.50元,商品类型食品饮料,产地为内蒙古。

INSERT INTO goods VALUES(6,'光明发酵酸奶500ml',8.5,2,'蒙古');

2、显示所有商品的信息,按照价格的降序排列。

SELECT * FROM goods  ORDER BY price desc

3、统计各类商品的平均单价,显示商品的类型和平均单价。

SELECT goodstype 商品类型,AVG(price) 商品平均单价 FROM goods GROUP BY goodstype

4、超市进行商品促销,现对所有商品进行8.5折销售,显示商品名称和折扣后价格,四舍五入保留两位小数。

SELECT goodsname,ROUND(price*0.85,2) FROM goods 

5、修改“泰国山竹特级”的价格为23元。

UPDATE goods SET price=23 WHERE goodsname='泰国山竹特级'

 

数据库完整导入代码:

-- ----------------------------
-- Table structure for goods
-- ----------------------------
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods`  (
  `goodsid` int(11) NOT NULL AUTO_INCREMENT,
  `goodsname` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `price` decimal(6, 2) NULL DEFAULT NULL,
  `goodstype` int(11) NULL DEFAULT NULL,
  `place` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`goodsid`) USING BTREE,
  INDEX `id_fk`(`goodstype`) USING BTREE,
  CONSTRAINT `id_fk` FOREIGN KEY (`goodstype`) REFERENCES `goodstype` (`typeid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of goods
-- ----------------------------
INSERT INTO `goods` VALUES (1, '飞利浦SP100净化器', 2500.00, 1, '武汉');
INSERT INTO `goods` VALUES (2, '山东红富士苹果(一级果)', 12.50, 3, '山东');
INSERT INTO `goods` VALUES (3, '康师傅桶装方便面(红烧牛肉面)', 4.50, 2, '杭州');
INSERT INTO `goods` VALUES (4, '格力NS-8823变频空调', 2350.00, 1, '珠海');
INSERT INTO `goods` VALUES (5, '泰国山竹特级', 25.00, 3, '泰国');

-- ----------------------------
-- Table structure for goodstype
-- ----------------------------
DROP TABLE IF EXISTS `goodstype`;
CREATE TABLE `goodstype`  (
  `Typeid` int(11) NOT NULL AUTO_INCREMENT,
  `typename` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `content` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`Ttpeid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of goodstype
-- ----------------------------
INSERT INTO `goodstype` VALUES (1, '家用电器', '电器类商品为高价值商品,重点维护');
INSERT INTO `goodstype` VALUES (2, '食品饮料', '注意加强检查');
INSERT INTO `goodstype` VALUES (3, '水果生鲜', '');

 

目  录 1 引 言 1 1.1课程设计选题 1 1.2课程设计的目的 1 1.3本选题的设计背景 1 2 系统分析与设计 2 2.1 功能及性能分析 2 2.1.1 功能需求 2 2.1.2 性能需求 2 2.2 系统的开发运行环境 3 2.3 系统总体设计 3 3 数据库设计 4 3.1 数据库概念结构 4 3.2 数据库逻辑结构 6 3.2.1 关系模型 6 3.2..2视图的设计 8 3.3 数据库的实现 8 3.3.1 8 4 详细设计与实现 11 4.1 登录模块 11 4.2 入库模块 11 4.3 员工管理模块 12 4.4 财务管理模块 13 4.5 销售管理模块 14 结  论 14 参 考 文 献 15 附录 15 1 引 言 1.1课程设计选题 《超市管理系统》 1.2课程设计的目的 通过数据库系统课程设计,熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL SERVER数据库管理系统的应用技术的使用;应用JSP开发工具实践了《学生选课管理系统》的数据库应用系统的设计方法、开发过程SQL SERVER数据库的管理与维护。最终达到掌握数据库管理系统的使用开发,提高分析问题、解决问题实践应用能力。 1.3本选题的设计背景 超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。面对不同种类的信息,需要合理的数据库结构来保存数据信息,需要有效的程序结构支持各种数据操作的执行。商店自动化的产品管理在欧美等国家早已经实现,也是零售业管理的基础。它最主要的特点是能够实时的准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望在超市购物中能基本上都能购得所需的商品,并且还要既保证商品质量还要享受优质,方便的服务 随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。 超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。 2.1 功能及性能分析 2.1.1 功能需求 整个系统基本包括了小型超市所要用到的模块。包括收款操作,库存查询,填写资金支出,采购管理,库存管理,销售管理,资金管理,员工管理等。 1. 库存管理: 综合查询库存明细记录。 仓库信息搜索。仓库调度以及仓库货物信息查询。 2、商品录入:根据超巿业务特点制定相关功能,可以通过输入商品名称等来实现精确或模糊的商品录入。其中将商品划分成不同的类型,方便管理查询。 3. 财务管理:通过直接输入商品名称系统自动显示该商品的详细信息。明确显示折扣,现卖价,以及仓库剩余量,自动计算本次交易的总金额判断购买数量的准确性。如果顾客是本店会员并持有本人会员卡,则在交易时选择顾客类型,并对所购物品全部实行等级折扣优惠,并将所购物品的总金额累计到该会员的总消费金额中。 4、 进货管理: 根据销售情况及库存情况,制定进货计划(亦可手工制定修改),强大的查询功能可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询进货与入库记录及金额。 5. 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看打印商品销售日、月、年报。 6. 员工管理:基本信息登记管理。 员工操作权限管理。 客户销售权限管理。信息查询,修改更新,已经删除。 7. 安全性:对每位员工进行权限限制。其中超市管理员具有最高权限。根据工作类型的不同现实相应系统的不同部分,避免了非法操作。 8、资金管理:系统采用每日自动报帐及报帐查询,用户可以按照自己的需要进行某个时间段的查询,查看订货情况,销售情况,财务支出收益情况,最终计算出此段时间内运营成本销售利润,结算出最终的利润。 9. 供货商管理:对供货商基本信息进行登记管理,通过基本信息进行查询,修改更新,删除 2.2 系统的开发运行环境 本系统开发平台: jsp + sql server 2000 本系统采用架构: petshop 本系统运行环境: windows xp 或以上版本
`getGoodsAndGoodsType`方法是一个面向对象编程中的接口或方法,它的目的是从数据库中获取指定商品类型ID对应的所有商品及其类型名称。在这个方法内部,可能的实现步骤如下: 1. **SQL查询**:首先会构造一个SQL查询,例如使用JOIN语句,将"商品表"(通常命名为"products")"商品类型"("product_types")连接起来,连接条件是商品表的"类型ID"字段等于传入的`goodsTypeId`。查询的字段包括商品表中的基本信息(如id、name、price等)以及商品类型中的类型名称(例如"type_name"`)。 示例查询语句可能是: ```sql SELECT products.* , product_types.type_name FROM products INNER JOIN product_types ON products.product_type_id = product_types.id WHERE products.product_type_id = ? ``` 2. **参数绑定**:然后将`goodsTypeId`作为参数传递到查询语句中。 3. **执行查询**:通过数据库驱动(比如JDBC或ORM框架)执行SQL查询,获取满足条件的数据集。 4. **映射结果**:最后将查询结果转换成`GoodsType`对象或其子类的实例,其中包含商品信息商品类型名。这个对象结构可能类似于`{ goods: [Goods object], type_name: String }`。 ```java public class GoodsType { private List<Goods> goodsList; private String typeName; public GoodsType(List<Goods> goods, String typeName) { this.goodsList = goods; this.typeName = typeName; } // getter and setter methods... } GoodsType getGoodsAndGoodsType(int goodsTypeId) { List<Goods> goods = jdbcTemplate.query( "SELECT * FROM products JOIN product_types ON products.product_type_id = product_types.id WHERE products.product_type_id = ?", new Object[]{goodsTypeId}, (rs, rowNum) -> new Goods(rs)); GoodsType goodsType = new GoodsType(goods, getProductTypeName(goodsTypeId)); // 获取类型名称 return goodsType; } private String getProductTypeName(int typeId) { // 查询商品类型名称的单独SQL语句或者通过商品类型获取 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明金同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值