作者一直都有打算想做一个通用的商品、商城类后台管理系统,这样的好处就是以后需要实现什么系统网站等,可充分复用系统和其逻辑,即使有改动也是在小范围,符合良好的开发思维。
主要的想法就是设计好模块管理功能,数据结构设计符合平常化,主要有几点:
以上是作者的一些观点或想法,说起来容易,做起来不难(哈哈哈),但是需要时间,最近作者也是忙得焦皮烂额(吐槽一下,资本家总有理由压榨你,可能ta还觉得你欠ta的,哈哈哈哈)
登录,还是最平常的登录,token登录
欢迎页
个人中心,信息、密码修改等
管理员管理
商品分类,树形列表,一对多层级关系
首页轮播图
推荐分类,一对多关系,绑定商品分类(不能父级分类)
商品管理,最多上传9张图片,商品详情支持富文本录入,图片等,所属商品分类支持多选,一对多关系
配置类相关
字典配置,一些日常生活中规范的描述可利用字典来配置实现,也是等价于代码里面的枚举,通过唯一编码code来确定
参数配置,与字典类似,通过唯一编码code来确定,支持富文本录入
这里看表设计,表之间的联系,自然就明白了其中只逻辑,很关键的也是很重要的作为程序员的一个基础,以下是作者目前设计所涉及的数据表:
-- 系统管理员
CREATE TABLE `admin` (`id` bigint NOT NULL COMMENT '主键',`username` varchar(60) NOT NULL COMMENT '用户名',`password` varchar(100) NOT NULL COMMENT '登录密码',`real_name` varchar(32) DEFAULT NULL COMMENT '姓名',`gender` tinyint(1) DEFAULT 0 COMMENT '用户性别 0保密 1男 2女',`avatar` varchar(300) DEFAULT NULL COMMENT '头像',`phone` varchar(20) DEFAULT NULL COMMENT '手机',`email` varchar(60) DEFAULT NULL COMMENT '邮箱',`remark` varchar(200) DEFAULT NULL COMMENT '备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',`admin_type` tinyint(1) DEFAULT '1' COMMENT '管理员类型 0超级管理员 1普通管理员',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `admin_key_username` (`username`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统管理员';-- 商品分类
CREATE TABLE `product_type` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父主键',`type_name` varchar(255) NOT NULL COMMENT '分类名称',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类';-- 首页推荐分类
CREATE TABLE `recommend_type` (`id` bigint NOT NULL COMMENT '主键',`name` varchar(255) NOT NULL COMMENT '分类名称',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页推荐分类';-- 首页推荐分类行项目
CREATE TABLE `recommend_type_item` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父级主键',`product_type_id` bigint NOT NULL DEFAULT 0 COMMENT '商品分类主键',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页推荐分类行项目';-- 商品CREATE TABLE `product`
(`id` bigint NOT NULL COMMENT '主键',`product_name` varchar(225) NOT NULL COMMENT '商品名称',`product_des` varchar(225) DEFAULT NULL COMMENT '商品描述',`price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '商品单价',`original_price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '商品原价',`material` varchar(225) DEFAULT NULL COMMENT '材料',`pack` varchar(225) DEFAULT NULL COMMENT '包装',`send_word` varchar(225) DEFAULT NULL COMMENT '寄语',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`cover_path` varchar(500) DEFAULT NULL COMMENT '商品封面图片',`img_path` varchar(2000) DEFAULT NULL COMMENT '商品图片,多张英文逗号分割',`content` longtext DEFAULT NULL COMMENT '商品详情内容',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`stock` int NOT NULL DEFAULT 0 COMMENT '商品库存',`sale_num` int NOT NULL DEFAULT 0 COMMENT '商品销量',`version` int NOT NULL DEFAULT 0 COMMENT '版本号',`status` tinyint(1) DEFAULT 1 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='商品';-- 商品所属分类
CREATE TABLE `product_type_item` (`id` bigint NOT NULL COMMENT '主键',`product_id` bigint NOT NULL DEFAULT 0 COMMENT '商品主键',`product_type_id` bigint NOT NULL DEFAULT 0 COMMENT '商品分类主键',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='首页推荐分类行项目';-- 系统字典
CREATE TABLE `system_dict` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT '0' COMMENT '父主键',`code` varchar(255) NOT NULL COMMENT '字典编码',`dict_key` int DEFAULT NULL COMMENT '字典值',`dict_name` varchar(255) NOT NULL COMMENT '字典名称',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(255) DEFAULT NULL COMMENT '字典备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统字典';-- 系统参数
CREATE TABLE `system_param` (`id` bigint NOT NULL COMMENT '主键',`code` varchar(255) NOT NULL COMMENT '参数编码,唯一',`title` varchar(255) NOT NULL COMMENT '标题',`content` longtext NOT NULL COMMENT '内容',`sort` int NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(255) DEFAULT NULL COMMENT '备注',`status` tinyint(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统参数';-- 2022-10-19 用户信息
CREATE TABLE `user_info`
(`id` bigint NOT NULL COMMENT '主键',`nickname` varchar(10) NOT NULL COMMENT '用户名称',`phone` varchar(20) NOT NULL COMMENT '手机号',`password` varchar(255) NOT NULL COMMENT '登录密码 加密',`avatar` varchar(225) DEFAULT NULL COMMENT '头像',`gender` TINYINT(1) DEFAULT 0 COMMENT '性别 0保密 1男 2女',`signature` varchar(225) DEFAULT NULL COMMENT '个性签名',`remark` varchar(225) DEFAULT NULL COMMENT '备注',`status` TINYINT(1) DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_time` datetime(0) COMMENT '创建时间',`update_time` datetime(0) COMMENT '更新时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `phone` (`phone`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='用户信息';-- 首页轮播图CREATE TABLE `banner`
(`id` bigint NOT NULL COMMENT '主键',`img_path` varchar(500) DEFAULT NULL COMMENT '图片路径',`route_path` varchar(255) DEFAULT NULL COMMENT '路由路径',`route_param` varchar(255) DEFAULT NULL COMMENT '路由参数(json格式)',`sort` INT(11) NOT NULL DEFAULT 0 COMMENT '排序,越小越靠前',`remark` varchar(225) DEFAULT NULL COMMENT '备注',`status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_system_time` datetime DEFAULT NULL COMMENT '创建时间',`create_system_admin_id` bigint DEFAULT NULL COMMENT '创建人ID',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='首页轮播图';-- 订单
CREATE TABLE `product_order` (`id` bigint NOT NULL COMMENT '主键',`order_num` varchar(100) DEFAULT NULL COMMENT '订单号',`user_id` bigint NOT NULL COMMENT '所属用户',`pay_amount` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '支付金额',`send_time` datetime DEFAULT NULL COMMENT '送货日期',`send_type` tinyint(1) DEFAULT 1 COMMENT '送货时间类型(系统字典)',`receiver_name` varchar(225) NOT NULL COMMENT '收货人姓名',`receiver_phone` varchar(225) NOT NULL COMMENT '收货人联系电话',`receiver_addr` varchar(225) NOT NULL COMMENT '收货人地址',`receiver_remark` varchar(225) DEFAULT NULL COMMENT '收货人备注',`pay_status` tinyint(1) DEFAULT 1 COMMENT '支付状态 1待支付 2已支付 3支付失败 4已取消',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `order_num` (`order_num`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单';-- 订单行项目
CREATE TABLE `product_order_item` (`id` bigint NOT NULL COMMENT '主键',`parent_id` bigint NOT NULL DEFAULT 0 COMMENT '订单主键',`order_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '订单号',`product_id` bigint NOT NULL COMMENT '商品主键',`product_name` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称',`product_des` varchar(225) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商品描述',`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品单价',`original_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品原价',`cover_path` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '商品封面图片',`product_num` int DEFAULT '0' COMMENT '商品购买数量',`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='订单行项目';-- 商品评论CREATE TABLE `product_comment`
(`id` bigint NOT NULL COMMENT '主键',`user_id` bigint NOT NULL COMMENT '用户主键',`product_id` bigint NOT NULL COMMENT '商品主键',`order_id` bigint NOT NULL COMMENT '订单主键',`order_item_id` bigint NOT NULL COMMENT '订单行项目主键',`content` varchar(1000) DEFAULT NULL COMMENT '评论内容',`img_path` varchar(2000) DEFAULT NULL COMMENT '商品图片,多张英文逗号分割',`status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否禁用 0否 1是',`deleted` tinyint(1) DEFAULT 0 COMMENT '逻辑删除标记 是否已删除: 0否 1是',`create_time` datetime(0) COMMENT '创建时间',`update_time` datetime(0) COMMENT '更新时间',`update_system_time` datetime DEFAULT NULL COMMENT '更新时间-管理员',`update_system_admin_id` bigint DEFAULT NULL COMMENT '修改人ID-管理员',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4 COMMENT ='商品评论';
暂时订单、评论还未实现,后期继续增加菜单管理,管理员角色、权限管理等,有兴趣的同学可以关注一下,期待作者可以快点实现和完善功能,当然,对应此管理后台的商城网站作者已经有了构思,管理后台实现后,即着手去实现商城网站,让它成为一套完整的系统。
有任何问题的朋友可通过博客最后的名片添加作者或留言、私聊都可。
感谢您的阅读~
上一篇:Qt基础编程