【v6】微信小程序拼团数据库设计规范

【【v6】微信小程序拼团数据库设计规范】来源:https://pinapp.gitee.io

基于拼团后端接口简约的特点,我们拟定了后端小程序拼团接口设计指南和建议。 适合 0 - 1 构建拼团商城不错参考。

地址表
CREATE TABLE `address` ( `address_id` int(11) NOT NULL AUTO_INCREMENT, `member_id` int(11) NOT NULL, `country` int(11) DEFAULT NULL, `province` varchar(50) CHARACTER SET gbk NOT NULL DEFAULT '', `city` varchar(50) CHARACTER SET gbk NOT NULL, `district` varchar(50) CHARACTER SET gbk NOT NULL, `province_id` int(11) NOT NULL, `city_id` int(11) NOT NULL, `district_id` int(11) NOT NULL, `address` varchar(255) NOT NULL DEFAULT '', `id_number` varchar(50) CHARACTER SET gbk DEFAULT '', `mobile` varchar(11) CHARACTER SET gbk NOT NULL, `receive_name` varchar(20) CHARACTER SET gbk NOT NULL, `address_name` char(10) CHARACTER SET gbk DEFAULT '', `full_address` varchar(255) NOT NULL DEFAULT '', `status` varchar(20) CHARACTER SET gbk DEFAULT '', `created_time` int(10) NOT NULL, `last_updated_time` int(10) NOT NULL, PRIMARY KEY (`address_id`), KEY `member_id` (`member_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='地址';

附件表
CREATE TABLE `attachment` ( `attach_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `attach_url` varchar(255) NOT NULL DEFAULT '', `oss` tinyint(1) unsigned NOT NULL, `time` int(10) unsigned NOT NULL, PRIMARY KEY (`attach_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='附件表';

商品表
CREATE TABLE `goods` ( `goods_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cate_id` int(11) unsigned NOT NULL COMMENT '分类ID', `goods_name` varchar(50) NOT NULL DEFAULT '' COMMENT '物品名称', `image_url` varchar(255) NOT NULL DEFAULT '' COMMENT '主图', `goods_desc` mediumtext NOT NULL COMMENT '物品描述', `goods_imgs` text NOT NULL COMMENT '商品图片', `market_price` decimal(10,2) unsigned NOT NULL COMMENT '市场价', `group_price` decimal(10,2) unsigned NOT NULL COMMENT '团购价', `alone_price` double(10,2) unsigned NOT NULL COMMENT '单独购买价格', `group_number` int(11) unsigned NOT NULL COMMENT '团购人数', `sell_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '销售数量', `limit_buy` tinyint(1) unsigned NOT NULL COMMENT '一个会员限制购买几次', `goods_stock` int(11) unsigned NOT NULL COMMENT '库存', `in_selling` tinyint(1) unsigned NOT NULL COMMENT '是否上架', `goods_sort` smallint(5) NOT NULL COMMENT '排序', `sell_type` tinyint(1) unsigned NOT NULL COMMENT '0不限 1:只团购 2:只单买', `time` int(10) unsigned NOT NULL COMMENT '添加时间', `spec_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品规格', `spec_type` tinyint(1) unsigned NOT NULL COMMENT '0单规格 1:多规格', PRIMARY KEY (`goods_id`), KEY `cate_id` (`cate_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='物品表';

商品分类表
CREATE TABLE `goods_cate` ( `cate_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cate_name` varchar(50) NOT NULL DEFAULT '', `parent_cate` int(11) unsigned NOT NULL, `sort` int(11) NOT NULL, PRIMARY KEY (`cate_id`), KEY `parent_cate` (`parent_cate`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='物品分类';

商品规格表
CREATE TABLE `goods_sku` ( `sku_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `goods_id` int(11) unsigned NOT NULL, `thumb_url` varchar(200) CHARACTER SET gbk DEFAULT '', `alone_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '单独购买', `group_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '团购价格', `goods_stock` int(11) NOT NULL DEFAULT '0', `sell_count` int(11) unsigned NOT NULL DEFAULT '0', `goods_spec` varchar(255) NOT NULL DEFAULT '', `sort` int(11) NOT NULL, PRIMARY KEY (`sku_id`), KEY `goods_id` (`goods_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

拼团表
CREATE TABLE `group` ( `group_order_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `require_num` int(11) unsigned NOT NULL, `people` int(5) unsigned NOT NULL, `status` tinyint(1) unsigned NOT NULL, `create_time` int(10) unsigned NOT NULL, `expire_time` int(10) unsigned NOT NULL, `success_time` int(10) unsigned DEFAULT NULL, `owner_id` int(10) unsigned NOT NULL, `notify` tinyint(1) unsigned DEFAULT NULL, PRIMARY KEY (`group_order_id`), KEY `owner_id` (`owner_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

会员表
CREATE TABLE `member` ( `member_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `open_id` varchar(255) NOT NULL DEFAULT '' COMMENT '用户open_id', `unionid` varchar(255) NOT NULL DEFAULT '', `nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '用户昵称', `subscribe` tinyint(1) unsigned NOT NULL COMMENT '是否关注', `sex` tinyint(1) unsigned DEFAULT NULL COMMENT '性别', `headimgurl` varchar(255) NOT NULL DEFAULT '' COMMENT '头像', `disablle` tinyint(1) unsigned NOT NULL COMMENT '是否禁用', `time` int(10) unsigned NOT NULL COMMENT '注册时间', PRIMARY KEY (`member_id`), KEY `open_id` (`open_id`(250)), KEY `unionid` (`unionid`(250)) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='会员表';

会员令牌表
CREATE TABLE `member_token` ( `member_id` int(11) unsigned NOT NULL, `token` varchar(48) NOT NULL DEFAULT '', `expires` int(10) unsigned NOT NULL, UNIQUE KEY `token` (`token`), KEY `member_id` (`member_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

订单日志表
CREATE TABLE `order_log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `manage` varchar(50) NOT NULL DEFAULT '', `order_id` int(11) unsigned NOT NULL, `remark` mediumtext NOT NULL, `time` int(10) unsigned NOT NULL, `do` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `order_id` (`order_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='订单日志';

订单表
CREATE TABLE `orders` ( `order_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `buyer_id` int(11) unsigned NOT NULL, `order_sn` varchar(50) NOT NULL DEFAULT '', `goods_id` int(11) unsigned NOT NULL, `group_order_id` int(11) unsigned NOT NULL, `group_header` tinyint(1) unsigned DEFAULT NULL, `pay_id` int(11) unsigned DEFAULT NULL, `pay_sn` varchar(50) NOT NULL DEFAULT '', `group_buy` tinyint(1) unsigned NOT NULL, `province_id` int(11) unsigned NOT NULL, `province_name` varchar(50) NOT NULL DEFAULT '', `city_id` int(11) unsigned NOT NULL, `city_name` varchar(50) NOT NULL DEFAULT '', `district_id` int(11) unsigned NOT NULL, `district_name` varchar(50) NOT NULL DEFAULT '', `mobile` char(11) NOT NULL DEFAULT '', `receive_name` varchar(11) NOT NULL DEFAULT '', `nickname` varchar(25) NOT NULL DEFAULT '', `order_goods` mediumtext NOT NULL, `goods_amount` double(10,2) unsigned NOT NULL, `order_amount` double(10,2) unsigned NOT NULL, `pay_amount` double(10,2) unsigned NOT NULL, `shipping_address` varchar(255) NOT NULL DEFAULT '', `shipping_amount` double(10,2) unsigned NOT NULL, `shipping_time` int(10) unsigned DEFAULT NULL, `shipping_name` varchar(20) NOT NULL DEFAULT '', `shipping_code` varchar(30) NOT NULL DEFAULT '', `tracking_number` varchar(80) NOT NULL DEFAULT '', `order_status` tinyint(1) unsigned NOT NULL, `order_time` int(10) unsigned NOT NULL, `pay_time` int(10) unsigned DEFAULT NULL, `received_time` int(10) unsigned DEFAULT NULL, `goods_number` int(11) unsigned NOT NULL, `sku_id` int(11) unsigned DEFAULT NULL, `goods_sku` text, PRIMARY KEY (`order_id`), KEY `goods_id` (`goods_id`), KEY `order_sn` (`order_sn`), KEY `member_id` (`buyer_id`), KEY `group_order_id` (`group_order_id`), KEY `pay_id` (`pay_id`), KEY `pay_sn` (`pay_sn`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='订单表';

支付日志表
CREATE TABLE `paylog` ( `pay_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `pay_sn` varchar(50) NOT NULL DEFAULT '', `order_id` int(11) unsigned NOT NULL, `pay_amount` decimal(10,2) unsigned NOT NULL, `pay_start_time` int(10) unsigned NOT NULL, `pay_done_time` int(10) unsigned DEFAULT NULL, `transaction_id` varchar(50) NOT NULL DEFAULT '' COMMENT '支付订单号', `refound_id` int(11) unsigned DEFAULT NULL COMMENT '退款订单号', `pay_type` varchar(50) NOT NULL DEFAULT '', `pay_status` tinyint(1) unsigned NOT NULL, `prepay_id` varchar(50) DEFAULT NULL, PRIMARY KEY (`pay_id`), KEY `pay_sn` (`pay_sn`), KEY `order_id` (`order_id`), KEY `refound_id` (`refound_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

地区表
CREATE TABLE `region` ( `region_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `region_name` varchar(50) NOT NULL DEFAULT '', `parent_id` int(11) unsigned NOT NULL, `status` tinyint(1) unsigned NOT NULL DEFAULT '2', `level` tinyint(1) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`region_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='配送地区';

分享表
CREATE TABLE `share` ( `share_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `member_id` int(11) unsigned NOT NULL, `share_type` varchar(50) NOT NULL DEFAULT '', `share_status` tinyint(1) unsigned NOT NULL DEFAULT '0', `share_time` int(11) unsigned NOT NULL, `share_url` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`share_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='分享数据';

物流表
CREATE TABLE `shipping` ( `shipping_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `shipping_name` varchar(50) NOT NULL DEFAULT '' COMMENT '物流名称', `shipping_code` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`shipping_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='配送方式';

    推荐阅读