Commit 569ede3f by jscat

nyx mysql: 数据优化

1. 添加地址表 tbl_address
2. 为activity, view_activity_info, view_activity_detail 添加地址字段
parent 15f1e2d6
USE rockwell_key;
USE rockwell_key;
......@@ -73,6 +73,10 @@ USE rockwell_key;
quiz 不需要有时间,通过activity_status来判断是否有效
activity 需要有时间, 通过activity_status && start_datetime, end_datetime来判断过期时间
活动和活动地点的关系:
复杂情况下, 一个活动可能会有多个地点; 比如冬奥会,
可是, 对于现在系统来说;尽量建议活动进行拆分, 拆分成子活动, 一个活动, 一个地点
*/
DROP TABLE IF EXISTS tbl_activity;
......@@ -86,6 +90,7 @@ CREATE TABLE tbl_activity (
`quiz` VARCHAR(200) COMMENT 'quiz题目列表, 通过::做间隔, ',
`point` double(10,2) COMMENT 'quiz 总的积分',
`member_id` VARCHAR(100) COMMENT '商家的id, uuid format, like mid_001',
`address_id` VARCHAR(100) COMMENT '地址的id, uuid format, like addid_001',
`note_image` VARCHAR(800) DEFAULT NULL COMMENT '发布的图片; 以::做分割',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
......@@ -93,15 +98,15 @@ CREATE TABLE tbl_activity (
KEY `query_key` (`member_id`,`tag`, `title`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell member 活动发布表';
INSERT INTO `tbl_activity`(`activity_id`, `activity_status`, `tag`, `title`, `num_like`, `content`, `quiz`, `point`, `member_id`, `note_image`, `create_datetime`,`update_datetime`)
INSERT INTO `tbl_activity`(`activity_id`, `activity_status`, `tag`, `title`, `num_like`, `content`, `quiz`, `point`, `member_id`, `address_id`, `note_image`, `create_datetime`,`update_datetime`)
VALUES
('aid_001', '01', '竞答', 'Renaissance Bar红酒知识竞答', '34', '共5题::可获得5积分', '190::191::195::196::299', 5.0, 'mid_123','https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200710174939.png','2020-05-29 16:01:48', '2020-05-29 16:01:48'),
('aid_002', '01', '竞答', 'Renaissance Bar威士忌知识竞答', '100', '共10题::可获得5积分', '290::191::195:196::283::201::300::342::355::214', 5.0,'mid_123','https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200710174939.png','2020-05-29 16:01:48', '2020-05-29 16:01:48'),
('aid_003', '01', '竞答', '叁年间知识竞答', '30', '共5题::可获得5积分', '199::191::295:236::200', 5.0, 'mid_456','http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_a3bb087cd46db1bb054f172b0afd2d32.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_1cb906383f0d7677b185f423357d2d32.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_33852ea7dd1dca8aad48b40f39f333ed.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_82f7406a58e6941b64e117f6980b73f9.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_655a83d89ae1220ccef8c5f3238c56a4.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_cdcffb931e7bf35502c93a6f9ec3973e.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_93f6ac372755b4efc4f0941cd6a8a007.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_6994cd488ea6bfb1d2e4b478a161cc42.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_1820c565d261d8e0899f15f62b80a861.jpg', '2020-05-25 14:39:20', '2020-05-25 14:39:20'),
('aid_004', '01', '竞答', 'Cin Cin知识竞答', '10', '共5题::可获得5积分', '190::191::195:196::313', 5.0, 'mid_001','http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_927aed9aa3b4fb2d857680fae75b76b2.jpg', '2020-05-29 14:48:11','2020-05-29 14:48:11'),
('aid_005', '01', '活动', 'Renaissance Bar威士忌四小杯特饮活动', '4', '一次领略泥煤的各种风味', '', 0.0, 'mid_123','https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2020-03-27 11:24:45', '2020-03-27 11:24:45'),
('aid_006', '01', '活动', '叁年间 & 罗翌 意大利红酒周', '10', '叁年间的专业加上罗翌的品质,你值得期待', '', 0.0, 'mid_456','https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2020-03-27 11:24:45', '2020-03-27 11:24:45'),
('aid_007', '01', '活动', '2020 上海ChinaJoy', '100', '作为当今全球数字娱乐领域最具知名度与影响力的年度盛会之一,2020年第十八届中国国际数码互动娱乐展览会(ChinaJoy),将于7月31日至8月3日在上海新国际博览中心举办。本届ChinaJoy的展会主题为:科技·引领数字娱乐新浪潮。本届ChinaJoy展会以IP为核心,涵盖游戏、动漫、互联网影视与音乐、网络文学、电子竞技、潮流玩具、智能娱乐软件及硬件等数字娱乐多领域,全景呈现以新科技为动力的数字娱乐产业发展盛况。届时,中外近200家数字娱乐企业,4000余台游戏体验机及数字娱乐和智能娱乐软硬件将登场亮相。', '', 0.0, 'mid_456','https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2020-03-27 11:24:45', '2020-03-27 11:24:45')
('aid_001', '01', '竞答', 'Renaissance Bar红酒知识竞答', '34', '共5题::可获得5积分', '190::191::195::196::299', 5.0, 'mid_123', '', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200710174939.png','2020-05-29 16:01:48', '2020-05-29 16:01:48'),
('aid_002', '01', '竞答', 'Renaissance Bar威士忌知识竞答', '100', '共10题::可获得5积分', '290::191::195:196::283::201::300::342::355::214', 5.0, 'mid_123', '', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20200710174939.png','2020-05-29 16:01:48', '2020-05-29 16:01:48'),
('aid_003', '01', '竞答', '叁年间知识竞答', '30', '共5题::可获得5积分', '199::191::295:236::200', 5.0, 'mid_456', '', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20200810202018.jpg::http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_93f6ac372755b4efc4f0941cd6a8a007.jpg', '2020-05-25 14:39:20', '2020-05-25 14:39:20'),
('aid_004', '01', '竞答', 'Cin Cin知识竞答', '10', '共5题::可获得5积分', '190::191::195:196::313', 5.0, 'mid_001', '', 'http://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/tmp_927aed9aa3b4fb2d857680fae75b76b2.jpg', '2020-05-29 14:48:11','2020-05-29 14:48:11'),
('aid_005', '01', '活动', 'Renaissance Bar威士忌四小杯特饮活动', '4', '一次领略泥煤的各种风味', '', 0.0, 'mid_123', 'addid_001', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2020-03-27 11:24:45', '2020-03-27 11:24:45'),
('aid_006', '01', '活动', '叁年间-罗翌 意大利红酒周', '10', '叁年间的专业加上罗翌的品质,你值得期待', '', 0.0, 'mid_456', 'addid_002', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2020-03-27 11:24:45', '2020-03-27 11:24:45'),
('aid_007', '01', '活动', '2020 上海ChinaJoy', '100', '作为当今全球数字娱乐领域最具知名度与影响力的年度盛会之一,2020年第十八届中国国际数码互动娱乐展览会(ChinaJoy),将于7月31日至8月3日在上海新国际博览中心举办。本届ChinaJoy的展会主题为:科技·引领数字娱乐新浪潮。本届ChinaJoy展会以IP为核心,涵盖游戏、动漫、互联网影视与音乐、网络文学、电子竞技、潮流玩具、智能娱乐软件及硬件等数字娱乐多领域,全景呈现以新科技为动力的数字娱乐产业发展盛况。届时,中外近200家数字娱乐企业,4000余台游戏体验机及数字娱乐和智能娱乐软硬件将登场亮相。', '', 0.0, 'mid_456', 'addid_001', 'https://930-test-sh.oss-cn-shanghai.aliyuncs.com/user-dir/sakura.jpg', '2020-03-27 11:24:45', '2020-03-27 11:24:45')
;
USE rockwell_key;
USE rockwell_key;
/*
地点-client(member/user)表 tbl_address
改为client是为了同时兼容 user 和 member
address-member 地址-商家 关系表
实际表示活动和活动地点的关系:
复杂情况下, 一个活动可能会有多个地点; 比如冬奥会,
可是, 对于现在系统来说;尽量建议活动进行拆分, 拆分成子活动, 一个活动, 一个地点
select client_id as member_id from tbl_address;
address-user 地址-user 关系表
如果存在电商物流场景下使用 select client_id as user_id from tbl_address;
address_id
client_id
address_name
default_status
*/
DROP TABLE IF EXISTS tbl_address;
CREATE TABLE tbl_address (
`address_id` VARCHAR(100) COMMENT '地址的id, uuid format, like addid_001',
`client_id` VARCHAR(100) COMMENT '商家/用户的id, uuid format, like mid_001',
`address_name` VARCHAR(200) COMMENT '地址名',
`address_status` VARCHAR(10) DEFAULT '01' COMMENT '默认地址: 00: 否;01:是',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`address_id`),
KEY `query_key` (`client_id`,`address_name`, `address_status`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell member 地点客户(member/user)表';
INSERT INTO `tbl_address`(`address_id`, `address_name`, `address_status`, `client_id`, `create_datetime`,`update_datetime`)
VALUES
('addid_001', '复兴中路523弄6号一楼', '01', 'mid_123', '2020-05-29 16:01:48', '2020-05-29 16:01:48'),
('addid_002', '上海市徐汇区永嘉路692号2栋1楼', '01', 'mid_456', '2020-05-29 16:01:48', '2020-05-29 16:01:48')
;
USE rockwell_key;
USE rockwell_key;
......@@ -9,7 +9,8 @@ DROP VIEW IF EXISTS view_activity_detail;
CREATE VIEW view_activity_detail
AS
SELECT aa.activity_id, aa.activity_status, bb.member_name, bb.member_slogan, aa.tag, aa.title, aa.num_like, aa.content, aa.quiz, aa.point, IFNULL(cc.product_id,"") as product_id, IFNULL(cc.product_desc,"") as product_desc, IFNULL(cc.product_status,"") as product_status, IFNULL(cc.default_status,"") as default_status, IFNULL(cc.unit_price,0) as unit_price, IFNULL(cc.stock, 0) as stock, aa.note_image, aa.member_id, bb.member_status, bb.member_logo, cc.start_datetime, cc.end_datetime, aa.create_datetime, aa.update_datetime
SELECT aa.activity_id, aa.activity_status, bb.member_name, bb.member_slogan, aa.tag, aa.title, aa.num_like, aa.content, aa.quiz, aa.point, dd.address_name, IFNULL(cc.product_id,"") as product_id, IFNULL(cc.product_desc,"") as product_desc, IFNULL(cc.product_status,"") as product_status, IFNULL(cc.default_status,"") as default_status, IFNULL(cc.unit_price,0) as unit_price, IFNULL(cc.stock, 0) as stock, aa.note_image, aa.member_id, bb.member_status, bb.member_logo, cc.start_datetime, cc.end_datetime, aa.create_datetime, aa.update_datetime
FROM tbl_activity aa
LEFT JOIN tbl_member bb ON aa.member_id=bb.id
LEFT JOIN tbl_product cc ON aa.activity_id=cc.activity_id
\ No newline at end of file
LEFT JOIN tbl_product cc ON aa.activity_id=cc.activity_id
LEFT JOIN tbl_address dd ON aa.address_id=dd.address_id
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
......@@ -9,7 +9,8 @@ USE rockwell_key;
DROP VIEW IF EXISTS view_activity_info;
CREATE VIEW view_activity_info
AS
SELECT aa.activity_id, aa.activity_status, bb.member_name, bb.member_slogan, aa.tag, aa.title, aa.num_like, aa.content, aa.quiz, aa.point, IFNULL(cc.product_desc,"") as product_desc, IFNULL(cc.unit_price,0) as unit_price, aa.note_image, aa.member_id, bb.member_status, bb.member_logo, cc.start_datetime, cc.end_datetime, aa.create_datetime, aa.update_datetime
SELECT aa.activity_id, aa.activity_status, bb.member_name, bb.member_slogan, aa.tag, aa.title, aa.num_like, aa.content, aa.quiz, aa.point, dd.address_name, IFNULL(cc.product_desc,"") as product_desc, IFNULL(cc.unit_price,0) as unit_price, aa.note_image, aa.member_id, bb.member_status, bb.member_logo, cc.start_datetime, cc.end_datetime, aa.create_datetime, aa.update_datetime
FROM tbl_activity aa
LEFT JOIN tbl_member bb ON aa.member_id=bb.id
LEFT JOIN tbl_product cc ON aa.activity_id=cc.activity_id AND cc.default_status='01'
\ No newline at end of file
LEFT JOIN tbl_product cc ON aa.activity_id=cc.activity_id AND cc.default_status='01'
LEFT JOIN tbl_address dd ON aa.address_id=dd.address_id
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论