今天我们的商城项目业务分析,具体和大家聊一下,商城项目需要哪些数据库表以及表的设计是怎么样的,在我们了解了商城的业务之后,下一步做的就是表的设计和规划,从商品管理到支付退款的表,我们做一个梳理。

首先我们把商城表的设计,分为三个维度,第一个是商品相关的表,第二个是订单相关的表,第三个是支付相关的表。

第一、商品相关的表。

1、商品分类表。

CREATE TABLE `goods_category` (
  `id` varchar(32) NOT NULL COMMENT 'id',
  `category_name` varchar(50) NOT NULL DEFAULT '' COMMENT '分类名称',
  `short_name` varchar(50) DEFAULT '' COMMENT '简称',
  `pid` varchar(32) NOT NULL DEFAULT '0' COMMENT '父id',
  `has_child` varchar(2) DEFAULT NULL COMMENT '是否有下级',
  `is_show` int(11) NOT NULL DEFAULT '0' COMMENT '是否显示',
  `sort` int(11) DEFAULT '0' COMMENT '排序',
  `image` varchar(255) NOT NULL DEFAULT '' COMMENT '分类图片',
  `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '分类页面关键字',
  `description` varchar(255) DEFAULT '' COMMENT '分类介绍',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `mall_ids` varchar(1000) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '项目Ids',
  `is_global` int(1) DEFAULT '1' COMMENT '是否全局默认',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `pid_level` (`pid`,`has_child`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=' 商品分类';

2、商品spu表。

CREATE TABLE `goods` (
  `id` varchar(32) NOT NULL COMMENT '商品id',
  `store_id` varchar(32) DEFAULT NULL COMMENT '店铺',
  `store_online_mall_type` int(1) DEFAULT NULL COMMENT '店铺自营类型',
  `store_enabled_stock_manager` int(1) DEFAULT NULL COMMENT '店铺是否启用库存管理',
  `goods_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称',
  `goods_class` int(1) NOT NULL DEFAULT '1' COMMENT '商品种类1.实物商品 3.虚拟卡券',
  `vouchert_type_id` varchar(32) DEFAULT NULL COMMENT '礼券类型id',
  `goods_class_name` varchar(25) NOT NULL DEFAULT '' COMMENT '商品种类',
  `goods_attr_class` varchar(32) NOT NULL DEFAULT '1' COMMENT '商品类型id',
  `goods_attr_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品类型名称',
  `goods_image` varchar(500) NOT NULL DEFAULT '' COMMENT '商品主图路径',
  `goods_content` mediumtext COMMENT '商品详情',
  `goods_state` int(1) NOT NULL DEFAULT '0' COMMENT '商品状态(0:待上架,1.销售中,2.已下架)',
  `limit_level` int(1) NOT NULL COMMENT '限制会员等级 1 是 0 否',
  `limit_level_ids` varchar(500) DEFAULT NULL COMMENT '会员专属等级',
  `buy_mode` int(1) NOT NULL COMMENT '支付方式 1 现金 ,2积分 3 现金+积分',
  `category_id` varchar(500) NOT NULL DEFAULT '' COMMENT '商品分类id,逗号隔开',
  `category_json` varchar(500) NOT NULL DEFAULT '' COMMENT '分类json字符串',
  `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品价格(取第一个sku)',
  `points` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '所需积分',
  `market_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '市场价格(取第一个sku)',
  `cost_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '成本价(取第一个sku)',
  `goods_stock` int(11) NOT NULL DEFAULT '0' COMMENT '商品库存(总和)',
  `goods_stock_alarm` int(11) NOT NULL DEFAULT '0' COMMENT '库存预警',
  `virtual_indate` varchar(30) DEFAULT '1' COMMENT '虚拟商品有效期',
  `shipping_type` varchar(10) NOT NULL DEFAULT '0' COMMENT '配送方式 1 到店自提 2 快递物流',
  `is_free_shipping` int(1) NOT NULL DEFAULT '0' COMMENT '是否免邮',
  `is_hot_sale` int(1) NOT NULL DEFAULT '0' COMMENT '是否热销',
  `goods_spec_format` varchar(2000) NOT NULL DEFAULT '' COMMENT '商品规格格式',
  `goods_attr_format` varchar(1000) NOT NULL DEFAULT '' COMMENT '商品属性格式',
  `introduction` varchar(255) NOT NULL DEFAULT '' COMMENT '促销语',
  `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键词',
  `unit` varchar(255) NOT NULL DEFAULT '' COMMENT '单位',
  `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
  `video_url` varchar(255) NOT NULL DEFAULT '' COMMENT '视频',
  `sale_num` int(11) NOT NULL DEFAULT '0' COMMENT '销量',
  `evaluate` int(11) NOT NULL DEFAULT '0' COMMENT '评价数',
  `evaluate_shaitu` int(11) NOT NULL DEFAULT '0' COMMENT '评价晒图数',
  `evaluate_shipin` int(11) NOT NULL DEFAULT '0' COMMENT '评价视频数',
  `evaluate_zhuiping` int(11) NOT NULL DEFAULT '0' COMMENT '评价追评数',
  `evaluate_haoping` int(11) NOT NULL DEFAULT '0' COMMENT '评价好评数',
  `evaluate_zhongping` int(11) NOT NULL DEFAULT '0' COMMENT '评价中评数',
  `evaluate_chaping` int(11) NOT NULL DEFAULT '0' COMMENT '评价差评数',
  `supplier_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '供应商id',
  `is_consume_discount` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否参与会员等级折扣',
  `discount_config` tinyint(1) NOT NULL DEFAULT '0' COMMENT '优惠设置(0默认 1自定义)',
  `discount_method` varchar(20) NOT NULL DEFAULT '' COMMENT '优惠方式(discount打折 manjian 满减 fixed_price 指定价格)',
  `sku_id` varchar(32) NOT NULL DEFAULT '0' COMMENT 'sku_id',
  `promotion_addon` varchar(255) NOT NULL DEFAULT '' COMMENT '当前参与的营销活动,逗号分隔(限时折扣、团购、拼团、秒杀、专题活动)',
  `goods_service_ids` varchar(255) NOT NULL DEFAULT '' COMMENT '商品服务id',
  `group_id` varchar(1000) NOT NULL DEFAULT '0' COMMENT '商品分组id',
  `virtual_sale` int(11) NOT NULL DEFAULT '0' COMMENT '虚拟销量',
  `max_buy` int(11) NOT NULL DEFAULT '0' COMMENT '限购',
  `min_buy` int(11) NOT NULL DEFAULT '0' COMMENT '起购数',
  `is_release` int(1) DEFAULT NULL COMMENT '是否发布',
  `release_time` datetime DEFAULT NULL COMMENT '发布时间',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `views` bigint(20) DEFAULT '0' COMMENT '浏览量',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '删除标志',
  `version` int(8) DEFAULT '0',
  `put_on_time` datetime DEFAULT NULL COMMENT '上架日期',
  `goods_code` varchar(32) DEFAULT NULL COMMENT '商品编码',
  `is_timing_put` int(1) DEFAULT NULL COMMENT '是否定时上架',
  `timing_put_time` datetime DEFAULT NULL COMMENT '定时上架时间',
  `is_timing_down` int(1) DEFAULT NULL COMMENT '是否定时下架',
  `limit_buy_cycle` int(1) DEFAULT NULL COMMENT '限购周期(1.每日,2.每周,3.每月,4每年)',
  `timing_down_time` datetime DEFAULT NULL COMMENT '定时下架时间',
  `store_sort` int(11) DEFAULT NULL COMMENT '店内排序',
  `olmall_sort` int(11) DEFAULT NULL COMMENT '商城排序',
  `real_valid_period_type` int(1) DEFAULT NULL COMMENT '核销有效期类型(实物)',
  `place_id` varchar(32) DEFAULT NULL COMMENT '自提地点',
  `freight_pay_type` int(1) DEFAULT NULL COMMENT '运费支付方式',
  `freight_pricing` decimal(10,2) DEFAULT NULL COMMENT '运费定价',
  `freight_pricing_add` decimal(10,2) DEFAULT NULL COMMENT '每多一件加收X元',
  `channel_type` int(1) DEFAULT NULL COMMENT '发布渠道 1.全部 2.仅线上 3.仅线下',
  `once_max_buy` int(11) DEFAULT '0' COMMENT '单次最大购买',
  `goods_preview_image` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品表';

3、商品sku表。

CREATE TABLE `goods_sku` (
  `id` varchar(32) CHARACTER SET utf8mb4 NOT NULL COMMENT '商品sku_id',
  `store_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '所属店铺id',
  `goods_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '商品id',
  `sku_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品sku名称',
  `sku_no` varchar(255) NOT NULL DEFAULT '' COMMENT '商品sku编码',
  `sku_spec_format` varchar(1000) NOT NULL DEFAULT '' COMMENT 'sku规格格式',
  `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'sku单价',
  `points` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '所需积分',
  `market_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'sku市场价',
  `cost_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'sku成本价',
  `discount_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT 'sku折扣价(默认等于单价)',
  `promotion_type` int(1) NOT NULL DEFAULT '0' COMMENT '活动类型1.限时折扣',
  `start_time` int(11) NOT NULL DEFAULT '0' COMMENT '活动开始时间',
  `end_time` int(11) NOT NULL DEFAULT '0' COMMENT '活动结束时间',
  `stock` int(11) NOT NULL DEFAULT '0' COMMENT '商品sku库存',
  `weight` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '重量(单位g)',
  `volume` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '体积(单位立方米)',
  `click_num` int(11) NOT NULL DEFAULT '0' COMMENT '点击量',
  `sale_num` int(11) NOT NULL DEFAULT '0' COMMENT '销量',
  `collect_num` int(11) NOT NULL DEFAULT '0' COMMENT '收藏量',
  `sku_image` varchar(255) NOT NULL DEFAULT '' COMMENT 'sku主图',
  `sku_images` varchar(1000) NOT NULL DEFAULT '' COMMENT 'sku图片',
  `goods_class` int(11) NOT NULL DEFAULT '1' COMMENT '商品种类1.实物商品2.虚拟商品3.卡券商品',
  `goods_class_name` varchar(25) NOT NULL DEFAULT '' COMMENT '商品种类',
  `goods_attr_class` int(11) NOT NULL DEFAULT '1' COMMENT '商品类型id',
  `goods_attr_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品类型名称',
  `goods_name` varchar(255) NOT NULL DEFAULT '' COMMENT '商品名称',
  `goods_content` text COMMENT '商品详情',
  `goods_state` int(1) NOT NULL DEFAULT '1' COMMENT '商品状态(1.正常0下架)',
  `goods_stock_alarm` int(11) NOT NULL DEFAULT '0' COMMENT '库存预警',
  `is_virtual` int(1) NOT NULL DEFAULT '0' COMMENT '是否虚拟类商品(0实物1.虚拟)',
  `virtual_indate` int(11) NOT NULL DEFAULT '1' COMMENT '虚拟商品有效期',
  `is_free_shipping` int(1) NOT NULL DEFAULT '0' COMMENT '是否免邮',
  `goods_spec_format` varchar(2000) NOT NULL DEFAULT '' COMMENT '商品规格格式',
  `goods_attr_format` varchar(1000) NOT NULL DEFAULT '' COMMENT '商品属性格式',
  `introduction` varchar(255) NOT NULL DEFAULT '' COMMENT '促销语',
  `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键词',
  `unit` varchar(255) NOT NULL DEFAULT '' COMMENT '单位',
  `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
  `video_url` varchar(255) NOT NULL DEFAULT '' COMMENT '视频',
  `evaluate` int(11) NOT NULL DEFAULT '0' COMMENT '评价数',
  `evaluate_shaitu` int(11) NOT NULL DEFAULT '0' COMMENT '晒图评价数',
  `evaluate_shipin` int(11) NOT NULL DEFAULT '0' COMMENT '视频评价数',
  `evaluate_zhuiping` int(11) NOT NULL DEFAULT '0' COMMENT '追评数',
  `spec_name` varchar(255) NOT NULL DEFAULT '' COMMENT '规格名称',
  `evaluate_haoping` int(11) NOT NULL DEFAULT '0' COMMENT '好评数',
  `evaluate_zhongping` int(11) NOT NULL DEFAULT '0' COMMENT '中评数',
  `evaluate_chaping` int(11) NOT NULL DEFAULT '0' COMMENT '差评数',
  `supplier_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '供应商id',
  `discount_config` int(1) NOT NULL DEFAULT '0' COMMENT '优惠设置(0默认 1自定义)',
  `discount_method` varchar(20) NOT NULL DEFAULT '' COMMENT '优惠方式(discount打折 manjian 满减 fixed_price 指定价格)',
  `member_price` varchar(255) NOT NULL DEFAULT '' COMMENT '会员价',
  `goods_service_ids` varchar(255) NOT NULL DEFAULT '' COMMENT '商品服务id',
  `virtual_sale` int(11) NOT NULL DEFAULT '0' COMMENT '虚拟销量',
  `max_buy` int(11) NOT NULL DEFAULT '0' COMMENT '限购',
  `min_buy` int(11) NOT NULL DEFAULT '0',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '删除标志',
  `version` int(8) DEFAULT '0',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  `remarks` varchar(200) DEFAULT NULL COMMENT '备注',
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品sku表';

5、库存地点表。

CREATE TABLE `stock_place` (
  `id` varchar(32) NOT NULL,
  `mall_id` varchar(32) DEFAULT NULL COMMENT '项目',
  `store_id` varchar(32) DEFAULT NULL COMMENT '店铺ID',
  `status` int(11) DEFAULT NULL COMMENT '状态1启用 0禁用',
  `place_code` varchar(50) DEFAULT NULL COMMENT '地点编号',
  `place_name` varchar(50) DEFAULT NULL COMMENT '地点名称',
  `remark` varchar(50) DEFAULT NULL COMMENT '备注',
  `def_status` int(1) DEFAULT NULL COMMENT '是否默认',
  `create_by` varchar(32) CHARACTER SET utf8 DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) CHARACTER SET utf8 DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '租户id',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

6、库存表。

CREATE TABLE `stock_product` (
  `id` varchar(32) NOT NULL COMMENT 'id',
  `goods_id` varchar(32) DEFAULT NULL COMMENT '商品',
  `sku_id` varchar(32) DEFAULT NULL COMMENT '商品SKU',
  `sku_no` varchar(32) DEFAULT NULL COMMENT '商品SKU NO',
  `place_id` varchar(50) DEFAULT NULL COMMENT '库存地点',
  `quantity_total` int(8) DEFAULT NULL COMMENT '总库存',
  `quantity_available` int(8) DEFAULT NULL COMMENT '可用库存',
  `quantity_frozen` int(8) DEFAULT NULL COMMENT '冻结库存',
  `cost_unit` decimal(10,2) DEFAULT NULL COMMENT '单价成本',
  `cost_total` decimal(10,2) DEFAULT NULL COMMENT '总成本',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `status` int(10) DEFAULT NULL COMMENT '状态 1启用 0禁用',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '0表示未删除,1表示删除',
  `sys_org_code` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='商品库存';

7、库存出入库单据表

CREATE TABLE `stock_in_out_receipt` (
  `id` varchar(32) NOT NULL COMMENT 'id',
  `receipt_no` varchar(50) DEFAULT NULL COMMENT '单据编号',
  `mall_id` varchar(32) DEFAULT NULL COMMENT '项目',
  `store_id` varchar(32) DEFAULT NULL COMMENT '店铺',
  `place_id` varchar(32) DEFAULT NULL COMMENT '库存地点',
  `stock_type` int(1) DEFAULT NULL COMMENT '入库类型(1 采购入库 2 自有入库 3 销售出库 4 货损出库)',
  `status` int(1) DEFAULT NULL COMMENT '状态 0 草稿 1 审批中 2 拒绝 3 通过',
  `audit_time` datetime DEFAULT NULL COMMENT '审批时间',
  `audit_by` varchar(32) DEFAULT NULL COMMENT '审批人',
  `origin_receipt_no` varchar(100) DEFAULT NULL COMMENT '原始单号',
  `cost_total` decimal(10,2) DEFAULT NULL COMMENT '总成本',
  `remark` varchar(50) DEFAULT NULL COMMENT '备注',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人(制单人)',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间(制单时间)',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `del_flag` varchar(1) DEFAULT '0' COMMENT '0表示未删除,1表示删除',
  `sys_org_code` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '租户id',
  `operation_time` datetime DEFAULT NULL COMMENT '操作时间',
  `operator` varchar(32) DEFAULT NULL COMMENT '操作人',
  `stock_date` datetime DEFAULT NULL COMMENT '出入库日期',
  `submit_time` datetime DEFAULT NULL COMMENT '提交审核时间',
  `submit_by` varchar(32) DEFAULT NULL COMMENT '提交审核人',
  `audit_time_twice` datetime DEFAULT NULL COMMENT '复审时间',
  `audit_by_twice` varchar(32) DEFAULT NULL COMMENT '复审人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='入库单据';

8、库存出入库详情表

CREATE TABLE `stock_in_out_receipt_detail` (
  `id` varchar(32) NOT NULL COMMENT 'id',
  `receipt_no` varchar(50) DEFAULT NULL COMMENT '单据编号',
  `receipt_id` varchar(32) DEFAULT NULL COMMENT '单据id',
  `line` int(4) DEFAULT NULL COMMENT '行号',
  `place_id` varchar(32) DEFAULT NULL COMMENT '库存地点',
  `goods_id` varchar(32) DEFAULT NULL COMMENT '商品id',
  `sku_id` varchar(32) DEFAULT NULL COMMENT 'SKU ID',
  `cost_unit` decimal(10,2) DEFAULT NULL COMMENT '单价成本',
  `quantity` int(8) DEFAULT NULL COMMENT '数量',
  `cost_total` decimal(10,2) DEFAULT NULL COMMENT '总成本',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `sys_org_code` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '租户id',
  `goods_code` varchar(32) DEFAULT NULL COMMENT '商品编码',
  `sku_no` varchar(32) DEFAULT NULL COMMENT 'SKU编码',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='入库单据明细';

9、库存出入库日志表

CREATE TABLE `stock_log` (
  `id` varchar(32) NOT NULL COMMENT 'id',
  `stock_product_id` varchar(50) DEFAULT NULL COMMENT '单据编号',
  `mall_id` varchar(32) DEFAULT NULL COMMENT '项目',
  `place_id` varchar(32) DEFAULT NULL COMMENT '库存地点',
  `goods_id` varchar(32) DEFAULT NULL COMMENT '商品id',
  `sku_id` varchar(32) DEFAULT NULL COMMENT 'SKU ID',
  `operation_type` int(1) DEFAULT NULL COMMENT '操作类型 1 入库,2 出库 3 销售 4 退货 5 冻结 6 解冻',
  `operation_way` int(1) DEFAULT NULL COMMENT '途径 1 后台 2 商城 ',
  `remark` varchar(50) DEFAULT NULL COMMENT '备注',
  `cost_unit` decimal(10,2) DEFAULT NULL COMMENT '单价成本',
  `quantity` int(8) DEFAULT NULL COMMENT '数量',
  `cost_total` decimal(10,2) DEFAULT NULL COMMENT '总成本',
  `quantity_after` int(8) DEFAULT NULL COMMENT '操作完库存数量',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '更新人',
  `sys_org_code` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='库存日志';

第二、订单相关的表。

1、订单主表。这张表是在商城中的订单主表,其他表也是以这张表为中心,商城项目的业务分析——创建订单的业务,是围绕这张表来写的接口。

CREATE TABLE `order_info` (
  `id` varchar(32) CHARACTER SET utf8mb4 NOT NULL,
  `order_no` varchar(50) NOT NULL DEFAULT '' COMMENT '订单编号',
  `order_name` varchar(1000) NOT NULL DEFAULT '' COMMENT '订单内容',
  `order_from` varchar(55) NOT NULL DEFAULT '' COMMENT '订单来源',
  `order_from_name` varchar(50) NOT NULL DEFAULT '' COMMENT '订单来源名称',
  `order_type` int(1) NOT NULL DEFAULT '0' COMMENT '订单类型 1. 普通订单  2. 门店订单  3. 本地配送订单4. 虚拟订单 5.秒杀订单6.拼团订单',
  `order_type_name` varchar(50) NOT NULL DEFAULT '' COMMENT '订单类型名称',
  `order_promotion_type` int(1) NOT NULL DEFAULT '0' COMMENT '订单营销类型',
  `order_promotion_name` varchar(50) NOT NULL DEFAULT '' COMMENT '营销活动类型名称',
  `mall_id` varchar(32) DEFAULT NULL COMMENT '项目id',
  `store_id` varchar(32) NOT NULL COMMENT '店铺id',
  `promotion_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '营销活动id',
  `out_trade_no` varchar(64) NOT NULL DEFAULT '' COMMENT '支付流水号',
  `out_trade_no_2` varchar(20) NOT NULL DEFAULT '' COMMENT '支付流水号(多次支付)',
  `delivery_code` varchar(50) NOT NULL DEFAULT '' COMMENT '整体提货编码',
  `order_status` int(1) NOT NULL DEFAULT '0' COMMENT '订单状态',
  `order_status_name` varchar(50) NOT NULL DEFAULT '' COMMENT '订单状态名称',
  `order_status_action` varchar(1000) NOT NULL DEFAULT '' COMMENT '订单操作',
  `pay_status` int(1) NOT NULL DEFAULT '0' COMMENT '支付状态',
  `delivery_status` int(1) NOT NULL DEFAULT '0' COMMENT '配送状态1待发货;2待提货;3已发货;4已提货',
  `refund_status` int(1) NOT NULL DEFAULT '0' COMMENT '退款状态1退款中;2退款完成',
  `pay_type` int(1) NOT NULL COMMENT '支付方式',
  `pay_type_name` varchar(50) NOT NULL DEFAULT '' COMMENT '支付类型名称',
  `delivery_type` int(1) NOT NULL DEFAULT '0' COMMENT '配送方式,1到店自提;2快递物流',
  `delivery_type_name` varchar(50) NOT NULL DEFAULT '' COMMENT '配送方式名称',
  `customer_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '会员',
  `customer_level_id` varchar(32) DEFAULT NULL COMMENT '会员等级',
  `name` varchar(50) NOT NULL DEFAULT '' COMMENT '购买人姓名',
  `mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '购买人手机',
  `telephone` varchar(20) NOT NULL DEFAULT '' COMMENT '购买人固定电话',
  `area` varchar(200) NOT NULL DEFAULT '0' COMMENT '省市区',
  `address` varchar(255) NOT NULL DEFAULT '' COMMENT '购买人地址',
  `full_address` varchar(255) NOT NULL DEFAULT '' COMMENT '购买人详细地址',
  `longitude` varchar(10) NOT NULL DEFAULT '' COMMENT '购买人地址经度',
  `latitude` varchar(10) NOT NULL DEFAULT '' COMMENT '购买人地址纬度',
  `buyer_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '购买人ip',
  `buyer_ask_delivery_time` datetime DEFAULT NULL COMMENT '购买人要求配送时间',
  `buyer_message` varchar(50) NOT NULL DEFAULT '' COMMENT '购买人留言信息',
  `goods_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品总金额',
  `delivery_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '配送费用',
  `delivery_point` decimal(10,2) DEFAULT '0.00',
  `promotion_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单优惠金额(满减)',
  `voucher_ids` varchar(500) NOT NULL DEFAULT '0' COMMENT '优惠券id',
  `voucher_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠券金额',
  `invoice_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '发票金额',
  `order_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单合计金额',
  `adjust_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单调整金额',
  `balance_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额支付金额',
  `pay_money` decimal(10,2) DEFAULT '0.00' COMMENT '抵扣之后应付金额',
  `create_time` datetime(6) DEFAULT NULL COMMENT '创建时间',
  `verify_time` datetime DEFAULT NULL COMMENT '提货时间',
  `pay_time` datetime DEFAULT NULL COMMENT '订单支付时间',
  `delivery_time` datetime DEFAULT NULL COMMENT '订单配送时间',
  `sign_time` datetime DEFAULT NULL COMMENT '订单签收时间',
  `finish_time` datetime DEFAULT NULL COMMENT '订单完成时间',
  `close_time` datetime DEFAULT NULL COMMENT '订单关闭时间',
  `expiry_time` datetime DEFAULT NULL COMMENT '订单超时时间',
  `is_lock` int(11) NOT NULL DEFAULT '0' COMMENT '是否锁定订单(针对维权,锁定不可操作)',
  `is_evaluate` int(11) NOT NULL DEFAULT '0' COMMENT '是否允许订单评价',
  `is_delete` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除(针对后台)',
  `is_enable_refund` int(11) NOT NULL DEFAULT '0' COMMENT '是否允许退款',
  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '卖家留言',
  `goods_num` int(11) NOT NULL DEFAULT '0' COMMENT '商品件数',
  `delivery_place_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '门店id',
  `delivery_status_name` varchar(50) NOT NULL DEFAULT '' COMMENT '发货状态,待发货;待提货;已发货;已提货',
  `is_settlement` int(1) NOT NULL DEFAULT '0' COMMENT '是否进行结算',
  `store_settlement_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '门店结算id',
  `delivery_place_name` varchar(255) NOT NULL DEFAULT '' COMMENT '门店名称',
  `promotion_type` varchar(255) NOT NULL DEFAULT '' COMMENT '营销类型',
  `promotion_type_name` varchar(255) NOT NULL DEFAULT '' COMMENT '营销类型名称',
  `promotion_status_name` varchar(255) NOT NULL DEFAULT '' COMMENT '营销状态名称',
  `delivery_store_info` varchar(255) NOT NULL DEFAULT '' COMMENT '门店信息(json)',
  `virtual_code` varchar(255) NOT NULL DEFAULT '' COMMENT '虚拟商品码',
  `evaluate_status` int(1) NOT NULL DEFAULT '0' COMMENT '评价状态,0:未评价,1:已评价,2:已追评',
  `evaluate_status_name` varchar(20) NOT NULL DEFAULT '' COMMENT '评价状态名称,未评价,已评价,已追评',
  `refund_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单退款金额',
  `commission` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '总支出佣金',
  `is_invoice` int(1) NOT NULL DEFAULT '0' COMMENT '是否需要发票 0 无发票  1 有发票',
  `invoice_type` int(1) NOT NULL DEFAULT '1' COMMENT '发票类型  1 纸质发票 2 电子发票',
  `invoice_title` varchar(255) NOT NULL DEFAULT '' COMMENT '发票抬头',
  `taxpayer_number` varchar(255) NOT NULL DEFAULT '' COMMENT '纳税人识别号',
  `invoice_rate` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '发票税率',
  `invoice_content` varchar(255) NOT NULL DEFAULT '' COMMENT '发票内容',
  `invoice_delivery_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '发票邮寄费用',
  `invoice_full_address` varchar(255) NOT NULL DEFAULT '' COMMENT '发票邮寄地址',
  `is_tax_invoice` int(11) NOT NULL DEFAULT '0' COMMENT '是否需要增值税专用发票',
  `invoice_email` varchar(255) NOT NULL DEFAULT '' COMMENT '发票发送邮件',
  `invoice_title_type` int(1) NOT NULL DEFAULT '0' COMMENT '发票抬头类型  1 个人  2 企业',
  `is_fenxiao` int(1) NOT NULL DEFAULT '1' COMMENT '是否参与分销 0不参与 1参与',
  `point_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '积分抵现金额',
  `points` decimal(12,2) DEFAULT '0.00' COMMENT '抵扣积分',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  `description` varchar(255) DEFAULT NULL COMMENT '备注',
  `express_company` int(1) unsigned zerofill DEFAULT NULL COMMENT '快递公司;',
  `express_no` varchar(50) DEFAULT NULL COMMENT '快递单号',
  `express_company_name` varchar(50) DEFAULT NULL COMMENT '快递公司名称',
  `deduction_rule_id` varchar(32) DEFAULT NULL COMMENT '抵现规则ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='订单表';

2、订单详情表。

CREATE TABLE `order_goods` (
  `id` varchar(32) NOT NULL,
  `order_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '订单id',
  `order_no` varchar(50) NOT NULL DEFAULT '' COMMENT '订单编号',
  `store_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '店铺id',
  `customer_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '购买会员id',
  `goods_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '商品id',
  `place_id` varchar(32) DEFAULT NULL COMMENT '库存地点id',
  `sku_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '商品skuid',
  `sku_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '商品名称',
  `sku_image` varchar(255) DEFAULT '' COMMENT '商品图片',
  `sku_no` varchar(32) NOT NULL DEFAULT '' COMMENT '商品编码',
  `is_virtual` int(1) NOT NULL DEFAULT '0' COMMENT '是否是虚拟商品',
  `goods_class` int(1) NOT NULL DEFAULT '0' COMMENT '商品种类(1.实物 2.虚拟3.卡券)',
  `goods_class_name` varchar(50) DEFAULT '' COMMENT '商品类型名称',
  `price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品卖价',
  `points` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品卖价',
  `cost_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '成本价',
  `num` int(11) NOT NULL DEFAULT '0' COMMENT '购买数量',
  `goods_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品总价',
  `cost_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '成本总价',
  `delivery_status` int(1) NOT NULL DEFAULT '0' COMMENT '配送状态',
  `delivery_no` varchar(50) DEFAULT '' COMMENT '配送单号',
  `gift_flag` int(1) NOT NULL DEFAULT '0' COMMENT '赠品标识',
  `refund_no` varchar(20) DEFAULT '' COMMENT '退款编号(申请产生)',
  `refund_status` int(1) DEFAULT '0' COMMENT '退款状态',
  `refund_status_name` varchar(50) DEFAULT '' COMMENT '退款状态名称',
  `refund_status_action` varchar(1000) DEFAULT '' COMMENT '退款操作',
  `refund_type` int(1) NOT NULL DEFAULT '0' COMMENT '退款方式',
  `refund_apply_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '退款申请金额',
  `refund_reason` varchar(255) DEFAULT '' COMMENT '退款原因',
  `refund_real_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '实际退款金额',
  `refund_delivery_name` varchar(50) DEFAULT '' COMMENT '退款公司名称',
  `refund_delivery_no` varchar(64) NOT NULL DEFAULT '' COMMENT '退款单号',
  `refund_time` datetime(6) DEFAULT NULL COMMENT '实际退款时间',
  `refund_refuse_reason` varchar(255) DEFAULT '' COMMENT '退款拒绝原因',
  `refund_action_time` datetime(6) DEFAULT NULL COMMENT '退款时间',
  `delivery_status_name` varchar(50) DEFAULT '' COMMENT '配送状态名称',
  `real_goods_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '实际商品购买价',
  `refund_remark` varchar(255) DEFAULT '' COMMENT '退款说明',
  `refund_delivery_remark` varchar(255) DEFAULT '' COMMENT '买家退货说明',
  `refund_address` varchar(255) DEFAULT '' COMMENT '退货地址',
  `is_refund_stock` int(11) NOT NULL DEFAULT '0' COMMENT '是否返还库存',
  `refund_money_type` int(11) NOT NULL DEFAULT '1' COMMENT '退款方式   1 原路退款 2线下退款',
  `promotion_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额',
  `voucher_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '优惠券金额',
  `adjust_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '调整金额',
  `goods_name` varchar(400) DEFAULT '' COMMENT '商品名称',
  `sku_spec_format` varchar(1000) DEFAULT '' COMMENT 'sku规格格式',
  `is_fenxiao` int(1) NOT NULL DEFAULT '1',
  `use_point` decimal(11,2) NOT NULL DEFAULT '0.00' COMMENT '积分抵扣所用积分数',
  `point_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '积分抵扣金额',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  `description` varchar(255) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='订单商品表';

3、订单日志表。

CREATE TABLE `order_log` (
  `id` varchar(32) NOT NULL,
  `store_id` varchar(32) NOT NULL COMMENT '店铺id',
  `order_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '订单id',
  `customer_id` varchar(32) DEFAULT NULL COMMENT '会员id',
  `action` varchar(255) NOT NULL DEFAULT '' COMMENT '操作',
  `nick_name` varchar(50) NOT NULL DEFAULT '' COMMENT '操作人',
  `order_status` int(1) NOT NULL DEFAULT '0' COMMENT '订单状态',
  `action_way` int(1) NOT NULL DEFAULT '0',
  `order_status_name` varchar(255) NOT NULL DEFAULT '' COMMENT '订单状态名称',
  `action_time` datetime(6) NOT NULL COMMENT '操作时间',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='订单操作表';

4、购物车表。

CREATE TABLE `goods_cart` (
  `id` varchar(32) CHARACTER SET utf8mb4 NOT NULL,
  `customer_id` varchar(32) CHARACTER SET utf8mb4 NOT NULL DEFAULT '0' COMMENT '会员id',
  `sku_id` varchar(32) CHARACTER SET utf8mb4 NOT NULL DEFAULT '0' COMMENT 'sku_id',
  `num` int(11) NOT NULL DEFAULT '0' COMMENT '数量',
  `create_by` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '租户id',
  `goods_id` varchar(32) CHARACTER SET utf8mb4 NOT NULL COMMENT '商品主表id',
  `delivery_type` int(1) DEFAULT NULL COMMENT '配送方式,0:自动发放 1到店自提;2快递物流',
  `store_id` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '店铺id',
  `sku_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT 'sku名称',
  `goods_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '商品名称',
  `sku_image` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT 'sku图片',
  `buy_mode` int(1) DEFAULT NULL COMMENT '付款方式',
  `min_buy` int(2) DEFAULT NULL COMMENT '最小购买',
  `max_buy` int(2) DEFAULT NULL COMMENT '最大购买',
  `once_max_buy` int(2) DEFAULT NULL COMMENT '一次最多购买',
  `points` decimal(10,2) DEFAULT NULL COMMENT '商品积分',
  `price` decimal(10,2) DEFAULT NULL COMMENT '商品价格',
  `goods_delivery_type` varchar(50) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '商品配送方式',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `IDX_ns_goods_cart_member_id` (`customer_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT=' 购物车';

第三、支付相关的表

1、支付流水表。

CREATE TABLE `pay` (
  `id` varchar(32) NOT NULL COMMENT '主键',
  `store_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '店铺id',
  `order_id` varchar(32) NOT NULL COMMENT '订单id',
  `out_trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '支付流水号',
  `pay_type` varchar(255) NOT NULL DEFAULT '' COMMENT '支付方式',
  `trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '交易单号',
  `pay_no` varchar(255) NOT NULL DEFAULT '' COMMENT '支付账号',
  `pay_body` varchar(1000) NOT NULL DEFAULT '' COMMENT '支付主体',
  `pay_detail` varchar(1000) NOT NULL DEFAULT '' COMMENT '支付详情',
  `pay_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '支付金额',
  `pay_addon` varchar(255) NOT NULL DEFAULT '' COMMENT '支付插件',
  `pay_voucher` varchar(255) NOT NULL DEFAULT '' COMMENT '支付票据',
  `pay_status` int(1) NOT NULL DEFAULT '0' COMMENT '支付状态(0.待支付 1. 支付中 2. 已支付 -1已取消)',
  `return_url` varchar(255) NOT NULL DEFAULT '' COMMENT '同步回调网址',
  `event` varchar(255) NOT NULL DEFAULT '' COMMENT '支付成功后事件(事件,网址)',
  `mch_info` varchar(1000) NOT NULL DEFAULT '' COMMENT '商户信息',
  `pay_time` datetime(6) NOT NULL COMMENT '支付时间',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  `app_id` varchar(64) DEFAULT NULL COMMENT '支付appid',
  `mall_id` varchar(32) DEFAULT NULL COMMENT '项目id',
  `open_id` varchar(64) DEFAULT NULL COMMENT '会员OPEN_ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='支付记录';

2、退款流水表。

CREATE TABLE `pay_refund` (
  `id` varchar(32) NOT NULL COMMENT '主键',
  `store_id` varchar(32) NOT NULL DEFAULT '0' COMMENT '店铺id',
  `refund_no` varchar(255) NOT NULL DEFAULT '' COMMENT '退款编号',
  `out_trade_no` varchar(255) NOT NULL DEFAULT '' COMMENT '对应支付流水号',
  `refund_detail` varchar(10000) NOT NULL DEFAULT '' COMMENT '退款详情',
  `refund_type` int(1) NOT NULL COMMENT '退款类型',
  `refund_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '退款金额',
  `refund_time` datetime(6) NOT NULL COMMENT '退款时间',
  `total_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '实际支付金额',
  `create_by` varchar(32) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(32) DEFAULT NULL COMMENT '修改人',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  `sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门编码',
  `tenant_id` varchar(64) DEFAULT NULL COMMENT '租户id',
  `order_id` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '订单id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='退款记录';

商城业务分析-数据库表设

以上列举了一个最基本的商城,需要具备的数据库表。现在是不考虑物流的情况,如果加上物流,还需要物流相关的表;也不考虑退款的审核,如果考虑的话,还有审核流程相关的表。因为商城项目中,我们需要考虑数据库表设计很多,从业务层面,先列举这些。

商城项目的业务,最首先的是分析业务,然后就是进行数据库表设计,这里的数据库表设计是一个简单的参考,并不适用于所有的商城项目的业务场景。