有很多小白在开发一个有团购功能的商城时,不知道数据库该如何设计,下面是我在开发时总结出来的一个团购项目的数据库设计,大家可以根据自己的需要作为参考。
1.拼团发起表
CREATE TABLE IF NOT EXISTS `group_sponsor` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uniacid` int(11) NOT NULL DEFAULT '0',
`openid` varchar(40) NOT NULL DEFAULT '' COMMENT '用户id',
`group_id` int(11) NOT NULL DEFAULT '0' COMMENT '团购列表id',
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`join_num` tinyint(3) NOT NULL DEFAULT '0' COMMENT '参团人数',
`status` tinyint(3) NOT NULL DEFAULT '1' COMMENT '状态',
`scale` tinyint(3) NOT NULL DEFAULT '0' COMMENT '拼团规模',
`avatarurl` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
`nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '名称',
`endtime` datetime DEFAULT NULL COMMENT '结束时间',
PRIMARY KEY (`id`),
KEY `openid` (`openid`(28)),
KEY `group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='拼团发起表';
2.参团表
CREATE TABLE IF NOT EXISTS `group_tuxedo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uniacid` int(11) NOT NULL DEFAULT '0',
`openid` varchar(40) NOT NULL DEFAULT '' COMMENT '用户id',
`avatarurl` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
`nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '昵称',
`group_sponsor_id` int(11) NOT NULL DEFAULT '0' COMMENT '发起id',
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '状态(1组团中2组团成功 -1 失败)',
`order` bigint(20) NOT NULL DEFAULT '0' COMMENT '订单号',
`ishost` tinyint(3) NOT NULL DEFAULT '-1' COMMENT '是否团主',
`group_id` int(11) NOT NULL DEFAULT '0' COMMENT '团购列表id',
PRIMARY KEY (`id`),
KEY `openid` (`openid`(28)),
KEY `group_sponsor_id` (`group_sponsor_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='参团列表';
3.团购商品表
CREATE TABLE IF NOT EXISTS `groupbuy` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uniacid` int(11) NOT NULL DEFAULT '0',
`good_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品id',
`good_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称',
`cid` int(11) NOT NULL DEFAULT '0' COMMENT '分类',
`old_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '原价',
`show_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '展示价',
`limit_num` int(11) NOT NULL DEFAULT '0' COMMENT '限购数量',
`group_num` int(11) NOT NULL DEFAULT '0' COMMENT '已开团数量',
`pattern` tinyint(3) NOT NULL DEFAULT '0' COMMENT '开团模式 1普通2阶梯',
`sorts` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
`status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '状态',
`attr` text COMMENT '属性',
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifytime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '修改时间',
`duration` int(11) NOT NULL DEFAULT '0' COMMENT '持续时间分钟',
`tries` tinyint(3) NOT NULL DEFAULT '0' COMMENT '购买次数限制',
`deadline` datetime DEFAULT NULL COMMENT '活动截止时间',
`isindex` tinyint(3) NOT NULL DEFAULT '-1' COMMENT '首页显示',
PRIMARY KEY (`id`),
KEY `good_id` (`good_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='团购';
4.团购订单表(如果订单列表进行订单分类(如:普通订单,团购订单)可以忽略此表)
CREATE TABLE IF NOT EXISTS `group_order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uniacid` int(11) NOT NULL DEFAULT '0',
`openid` varchar(40) NOT NULL DEFAULT '' COMMENT '用户id',
`order` bigint(20) NOT NULL DEFAULT '0' COMMENT '订单号',
`list` text COMMENT '订单信息',
`detail` varchar(255) NOT NULL DEFAULT '' COMMENT '地址信息',
`paytype` tinyint(3) NOT NULL DEFAULT '0' COMMENT '支付方式1余额2微信3抵扣4线下',
`status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '订单状态1未付款2待发货3已发货4已收货',
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`paytime` datetime DEFAULT NULL COMMENT '支付时间',
`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '总金额(含邮费)',
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
`totalnum` int(11) NOT NULL DEFAULT '0' COMMENT '商品数量',
`payid` varchar(100) NOT NULL DEFAULT '' COMMENT '用于发送模板消息',
`pay_wechat` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '微信支付',
`pay_balance` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额支付',
`delive_time` datetime DEFAULT NULL COMMENT '发货时间',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
`phone` bigint(20) NOT NULL DEFAULT '0' COMMENT '联系方式',
`region` varchar(255) NOT NULL DEFAULT '' COMMENT '省市区',
`express` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '快递费用',
`order_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额',
`express_number` varchar(255) NOT NULL DEFAULT '' COMMENT '快递单号',
`express_name` varchar(50) NOT NULL DEFAULT '' COMMENT '快递名称',
`value` varchar(500) NOT NULL DEFAULT '' COMMENT '信息',
`score` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '积分',
`formid` varchar(255) NOT NULL DEFAULT '' COMMENT '用于发送模板消息',
`express_code` varchar(50) NOT NULL DEFAULT '' COMMENT '快递公司编码',
`group_status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '团状态 1组团中2成功-1失败',
`out_refund_no` varchar(100) NOT NULL DEFAULT '' COMMENT '商户退款单号',
PRIMARY KEY (`id`),
KEY `openid` (`openid`(28),`order`),
KEY `order` (`order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='团购订单';
还有什么不明白也可以加我的微信(jizifengtiannu),欢迎讨论!