一 需求分析
爲進一步完善連鎖超市經營管理,提高管理效率,減少管理成本,決定開發一套商品管理系統,用於日常的管理。本系統分爲商品管理、員工管理、店鋪管理,庫存管理等功能模塊。本次開發,主要針對商品管理功能,具備添加商品,修改商品信息等功能,具體數據庫設計如下,請你根據需求完成數據庫的設計與相應功能。
二 數據字典
表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(Ttpeid)
);
表2:商品類型表(goodstype)
序號 |
字段名 |
說明 |
數據類型 |
約束 |
備註 |
1 |
Typeid |
類型編號 |
Int |
主鍵,自動增長 |
|
2 |
Typename |
類型名稱 |
Varchar |
長度20,非空 |
|
3 |
Content |
備註 |
Varchar |
長度50 |
|
CREATE TABLE goodstype(
Ttpeid 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/功能實現
- 實現商品進貨,商品名稱“光明發酵酸奶500ml”,商品價格8.50元,商品類型食品飲料,產地爲內蒙古。
INSERT INTO goods VALUES(6,'光明發酵酸奶500ml',8.5,2,'蒙古');
- 顯示所有商品的信息,按照價格的降序排列。
SELECT * FROM goods ORDER BY price desc
- 統計各類商品的平均單價,顯示商品的類型和平均單價。
SELECT goodstype 商品類型,AVG(price) 商品平均單價 FROM goods GROUP BY goodstype
- 超市進行商品促銷,現對所有商品進行8.5折銷售,顯示商品名稱和折扣後價格,四捨五入保留兩位小數。
SELECT goodsname,ROUND(price*0.85,2) FROM goods
數據庫完整導入代碼:
-- ----------------------------
-- 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` (`ttpeid`) 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` (
`Ttpeid` 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, '水果生鮮', '');