Commit e326fd23 by jscat

nyx sql: 数据优化

1. 更新tbl_order表的数据结构
1. 新增view_order_info, 用于表示每一个订单项(order)的信息
2. 新增view_order_detail, 用于表示每一个订单子项(order_item)的详细信息
parent 3c0c6386
USE rockwell_key;
USE rockwell_key;
/*
order 表及对应的 member|activity|order_item info 信息
id 机制
一个 member 发布多个 activity
一个 activity 产生多个 order
一个 order 对应一个 user
一个 order 对于多个 order_item
1. member_id
2. activity_id
3. order_id
4. user_id
*/
DROP VIEW IF EXISTS view_order_detail;
CREATE VIEW view_order_detail
AS
SELECT dd.member_name, cc.title, aa.total_price, bb.product_desc, bb.unit_price, bb.quantity, bb.item_price, aa.order_status, aa.order_id, aa.user_id, aa.activity_id, dd.id as member_id, bb.product_image, aa.qrcode_url, aa.create_datetime, aa.update_datetime
FROM tbl_order aa
LEFT JOIN tbl_order_item bb ON aa.order_id=bb.order_id
LEFT JOIN tbl_activity cc ON aa.activity_id=cc.activity_id
LEFT JOIN tbl_member dd ON cc.member_id=dd.id
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
......@@ -2,7 +2,14 @@ USE rockwell_key;
/*
order 表及对应的 member|activity|order_item info 信息
id 机制
一个member发布多个activity
一个activity产生多个order
一个order对应一个user
1. member_id
2. activity_id
3. order_id
4. user_id
*/
......@@ -10,8 +17,7 @@ DROP VIEW IF EXISTS view_order_info;
CREATE VIEW view_order_info
AS
SELECT dd.member_name, cc.title, bb.product_image, bb.product_desc, bb.unit_price, bb.quantity, aa.order_status, aa.order_id, aa.user_id, aa.qrcode_url, aa.create_datetime, aa.update_datetime
SELECT dd.member_name, cc.title, aa.total_price, aa.order_status, aa.order_id, aa.user_id, aa.activity_id, dd.id AS member_id, aa.qrcode_url, aa.create_datetime, aa.update_datetime
FROM tbl_order aa
LEFT JOIN tbl_order_item bb ON aa.order_id=bb.order_id
LEFT JOIN tbl_activity cc ON aa.activity_id=cc.activity_id
LEFT JOIN tbl_member dd ON cc.member_id=dd.id
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
......@@ -32,7 +32,7 @@ CREATE TABLE tbl_order (
`activity_id` VARCHAR(100) COMMENT '活动的id, uuid format, aid_001',
`user_id` VARCHAR(100) COMMENT '用户的id, uuid format, uid_001',
`order_status` VARCHAR(10) DEFAULT '00' COMMENT '订单状态: 00-订单取消, 10-未付款, 20-可使用, 30-已完成',
`payment` DECIMAL(20,2) DEFAULT '0.00' COMMENT '实际付款金额,单位是元,保留两位小数',
`total_price` DECIMAL(20,2) DEFAULT '0.00' COMMENT '实际付款金额,单位是元,保留两位小数',
`payment_type` VARCHAR(10) DEFAULT '01' COMMENT '支付类型,01-在线支付',
`qrcode_url` VARCHAR(200) COMMENT 'qrcode的二维码url',
`payment_datetime` DATETIME DEFAULT NULL COMMENT '支付时间',
......@@ -43,7 +43,7 @@ CREATE TABLE tbl_order (
KEY `query_key` (`activity_id`, `user_id`, `order_status`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='活动预订结果';
INSERT INTO `tbl_order`(`order_id`, `activity_id`, `user_id`, `order_status`, `payment`, `payment_type`, `qrcode_url`, `payment_datetime`, `end_datetime`, `create_datetime`,`update_datetime`)
INSERT INTO `tbl_order`(`order_id`, `activity_id`, `user_id`, `order_status`, `total_price`, `payment_type`, `qrcode_url`, `payment_datetime`, `end_datetime`, `create_datetime`,`update_datetime`)
VALUES
('oid_001', 'aid_005', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '20', 217.0, '01', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/qrcode-dir/mid_11235813.png', '', '', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('oid_002', 'aid_005', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', '10', 0.0, '', '', '', '', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
......
USE rockwell_key;
USE rockwell_key;
......@@ -44,14 +44,14 @@ CREATE TABLE tbl_order_item (
`product_image` VARCHAR(500) COMMENT '商品的图片地址',
`unit_price` decimal(20,2) DEFAULT '0.00' COMMENT '生成订单时的商品单价,单位是元,保留两位小数',
`quantity` int(10) DEFAULT 0 COMMENT '商品数量',
`total_price` decimal(20,2) DEFAULT '0.00' COMMENT '商品总价,单位是元,保留两位小数',
`item_price` decimal(20,2) DEFAULT '0.00' COMMENT '该item的商品总价,单位是元,保留两位小数',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`item_id`),
KEY `query_key` (`order_id`, `user_id`, `product_id`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='活动预订结果的子项';
INSERT INTO `tbl_order_item`(`item_id`, `order_id`, `user_id`, `product_id`, `product_desc`, `unit_price`, `quantity`, `total_price`, `product_image`, `create_datetime`,`update_datetime`)
INSERT INTO `tbl_order_item`(`item_id`, `order_id`, `user_id`, `product_id`, `product_desc`, `unit_price`, `quantity`, `item_price`, `product_image`, `create_datetime`,`update_datetime`)
VALUES
('iid_001', 'oid_001', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', 'pid_001', "会员", 59.0, 2, 118.0, 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('iid_002', 'oid_001', 'uid_030e7057-e6b5-4fb0-bcbf-d8bf055e38d9', 'pid_002', "普通用户", 99.0, 1, 99.0, 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
......
/*
/*
......@@ -373,6 +373,20 @@
}
]
423
SELECT * FROM view_order_detail
WHERE 1=1
AND order_id IN
(
SELECT * FROM
(
SELECT order_id FROM tbl_order
WHERE 1=1
/* todo and user_id='' */
AND order_status='20'
LIMIT 0, 4
) AS ids
)
422
422
421
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论