项目总结---表结构设计

DROP TABLE IF EXISTS `mmall_user`;
CREATE TABLE `mmall_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘用户表id‘,
  `username` varchar(50) NOT NULL COMMENT ‘用户名‘,
  `password` varchar(50) NOT NULL COMMENT ‘用户密码,MD5加密‘,
  `email` varchar(50) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `question` varchar(100) DEFAULT NULL COMMENT ‘找回密码问题‘,
  `answer` varchar(100) DEFAULT NULL COMMENT ‘找回密码答案‘,
  `role` int(4) NOT NULL COMMENT ‘角色0-管理员,1-普通用户‘,
  `create_time` datetime NOT NULL COMMENT ‘创建时间‘,
  `update_time` datetime NOT NULL COMMENT ‘最后一次更新时间‘,
  PRIMARY KEY (`id`),
  UNIQUE KEY `user_name_unique` (`username`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;

用户表:username作为唯一索引,让MySql为我们确保username的唯一性。

产品表:产品所属分类。产品主图采用副图中的第一张图,因为经常使用,单独拿出来。price的精度很重要。

商品状态:商品一般是不会被删除的,根据不同状态做不同处理。

DROP TABLE IF EXISTS `mmall_product`;
CREATE TABLE `mmall_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘商品id‘,
  `category_id` int(11) NOT NULL COMMENT ‘分类id,对应mmall_category表的主键‘,
  `name` varchar(100) NOT NULL COMMENT ‘商品名称‘,
  `subtitle` varchar(200) DEFAULT NULL COMMENT ‘商品副标题‘,
  `main_image` varchar(500) DEFAULT NULL COMMENT ‘产品主图,url相对地址‘,
  `sub_images` text COMMENT ‘图片地址,json格式,扩展用‘,
  `detail` text COMMENT ‘商品详情‘,
  `price` decimal(20,2) NOT NULL COMMENT ‘价格,单位-元保留两位小数‘,
  `stock` int(11) NOT NULL COMMENT ‘库存数量‘,
  `status` int(6) DEFAULT ‘1‘ COMMENT ‘商品状态.1-在售 2-下架 3-删除‘,
  `create_time` datetime DEFAULT NULL COMMENT ‘创建时间‘,
  `update_time` datetime DEFAULT NULL COMMENT ‘更新时间‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

分类表:设计特色,无限层次分类。

DROP TABLE IF EXISTS `mmall_category`;
CREATE TABLE `mmall_category` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘类别Id‘,
  `parent_id` int(11) DEFAULT NULL COMMENT ‘父类别id当id=0时说明是根节点,一级类别‘,
  `name` varchar(50) DEFAULT NULL COMMENT ‘类别名称‘,
  `status` tinyint(1) DEFAULT ‘1‘ COMMENT ‘类别状态1-正常,2-已废弃‘,
  `sort_order` int(4) DEFAULT NULL COMMENT ‘排序编号,同类展示顺序,数值相等则自然排序‘,
  `create_time` datetime DEFAULT NULL COMMENT ‘创建时间‘,
  `update_time` datetime DEFAULT NULL COMMENT ‘更新时间‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=100032 DEFAULT CHARSET=utf8;

购物车表:经常通过用户id来查找商品,为其建立一个索引。

DROP TABLE IF EXISTS `mmall_cart`;
CREATE TABLE `mmall_cart` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `product_id` int(11) DEFAULT NULL COMMENT ‘商品id‘,
  `quantity` int(11) DEFAULT NULL COMMENT ‘数量‘,
  `checked` int(11) DEFAULT NULL COMMENT ‘是否选择,1=已勾选,0=未勾选‘,
  `create_time` datetime DEFAULT NULL COMMENT ‘创建时间‘,
  `update_time` datetime DEFAULT NULL COMMENT ‘更新时间‘,
  PRIMARY KEY (`id`),
  KEY `user_id_index` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=131 DEFAULT CHARSET=utf8;

订单子表(订单中的每一个条目):使用user_id和order_no作为索引。为了方便查询,存在冗余。

DROP TABLE IF EXISTS `mmall_order_item`;
CREATE TABLE `mmall_order_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘订单子表id‘,
  `user_id` int(11) DEFAULT NULL,
  `order_no` bigint(20) DEFAULT NULL,
  `product_id` int(11) DEFAULT NULL COMMENT ‘商品id‘,
  `product_name` varchar(100) DEFAULT NULL COMMENT ‘商品名称‘,
  `product_image` varchar(500) DEFAULT NULL COMMENT ‘商品图片地址‘,
  `current_unit_price` decimal(20,2) DEFAULT NULL COMMENT ‘生成订单时的商品单价,单位是元,保留两位小数‘,
  `quantity` int(10) DEFAULT NULL COMMENT ‘商品数量‘,
  `total_price` decimal(20,2) DEFAULT NULL COMMENT ‘商品总价,单位是元,保留两位小数‘,
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `order_no_index` (`order_no`) USING BTREE,
  KEY `order_no_user_id_index` (`user_id`,`order_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8;

订单表:

DROP TABLE IF EXISTS `mmall_order`;
CREATE TABLE `mmall_order` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘订单id‘,
  `order_no` bigint(20) DEFAULT NULL COMMENT ‘订单号‘,
  `user_id` int(11) DEFAULT NULL COMMENT ‘用户id‘,
  `shipping_id` int(11) DEFAULT NULL,
  `payment` decimal(20,2) DEFAULT NULL COMMENT ‘实际付款金额,单位是元,保留两位小数‘,
  `payment_type` int(4) DEFAULT NULL COMMENT ‘支付类型,1-在线支付‘,
  `postage` int(10) DEFAULT NULL COMMENT ‘运费,单位是元‘,
  `status` int(10) DEFAULT NULL COMMENT ‘订单状态:0-已取消-10-未付款,20-已付款,40-已发货,50-交易成功,60-交易关闭‘,
  `payment_time` datetime DEFAULT NULL COMMENT ‘支付时间‘,
  `send_time` datetime DEFAULT NULL COMMENT ‘发货时间‘,
  `end_time` datetime DEFAULT NULL COMMENT ‘交易完成时间‘,
  `close_time` datetime DEFAULT NULL COMMENT ‘交易关闭时间‘,
  `create_time` datetime DEFAULT NULL COMMENT ‘创建时间‘,
  `update_time` datetime DEFAULT NULL COMMENT ‘更新时间‘,
  PRIMARY KEY (`id`),
  UNIQUE KEY `order_no_index` (`order_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=118 DEFAULT CHARSET=utf8;

支付信息表:

DROP TABLE IF EXISTS `mmall_pay_info`;
CREATE TABLE `mmall_pay_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT ‘用户id‘,
  `order_no` bigint(20) DEFAULT NULL COMMENT ‘订单号‘,
  `pay_platform` int(10) DEFAULT NULL COMMENT ‘支付平台:1-支付宝,2-微信‘,
  `platform_number` varchar(200) DEFAULT NULL COMMENT ‘支付宝支付流水号‘,
  `platform_status` varchar(20) DEFAULT NULL COMMENT ‘支付宝支付状态‘,
  `create_time` datetime DEFAULT NULL COMMENT ‘创建时间‘,
  `update_time` datetime DEFAULT NULL COMMENT ‘更新时间‘,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8;

收货地址表:相对简单点。

DROP TABLE IF EXISTS `mmall_shipping`;
CREATE TABLE `mmall_shipping` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT ‘用户id‘,
  `receiver_name` varchar(20) DEFAULT NULL COMMENT ‘收货姓名‘,
  `receiver_phone` varchar(20) DEFAULT NULL COMMENT ‘收货固定电话‘,
  `receiver_mobile` varchar(20) DEFAULT NULL COMMENT ‘收货移动电话‘,
  `receiver_province` varchar(20) DEFAULT NULL COMMENT ‘省份‘,
  `receiver_city` varchar(20) DEFAULT NULL COMMENT ‘城市‘,
  `receiver_district` varchar(20) DEFAULT NULL COMMENT ‘区/县‘,
  `receiver_address` varchar(200) DEFAULT NULL COMMENT ‘详细地址‘,
  `receiver_zip` varchar(6) DEFAULT NULL COMMENT ‘邮编‘,
  `create_time` datetime DEFAULT NULL,
  `update_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

总结:用户表,商品表,分类表,购物车表,订单表,订单项目表,收货地址表,支付信息表

原文地址:https://www.cnblogs.com/QQAILOVE/p/8447254.html

时间: 2024-07-31 15:37:22

项目总结---表结构设计的相关文章

巨蟒django之CRM1 需求分析&&表结构设计&&注册登录验证

1.需求分析 1.项目 (1)业务 (2)权限的管理 2.CRM customer relationship management 客户关系管理系统 3.谁来使用CRM? 销售&&班主任&&讲师&&助教 4.项目的需求分析 (1)注册 (2)登录 (3)销售 1.客户信息管理 增加 编辑 展示 客户信息(删除一般不用它做,后台管理员来做,为了信息安全) 2.跟进信息管理 增加 编辑 展示 跟进信息 3.报名信息的管理 增加 编辑 展示 报名信息 4.缴费记录

数据库表结构设计方法

author:skate time:2011-02-12 数据库表结构设计方法 当我们设计一个数据库存储模式时,要仔细分析数据模式,不要一股脑的把所有的数据都放在一起.那样的话对系统的可用性,高效能,扩展性都会有严重的影响.当然你设计的系统非常小,完全可以用最简单的方法. 要通过对业务的熟练,从不同的角度对数据进行多维度分析,一般可以从如下几个方向分析: 1.       数据流向 2.       数据访问特点 3.       数据量的大小 4.       数据的增长量 5.      

如何优雅的进行表结构设计

作者:仁风H链接:https://zhuanlan.zhihu.com/p/20785905来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 数据库表结构设计作为后端软件开发不可或缺的一环,是每个后端工程师都会经历的过程.笔者也多次经历过这样的过程,也尝试过多种不同的设计方案,也从一些优秀的框架中学到不少,但并没有发现相关的文章对其进行总结.所以本文尝试把笔者看到的.学到的总结下来,希望对阅读本文的读者有所启发. 表结构设计主要有两个目的,一是让表结构更加的更具有表

谈Apache OFbiz 会员模块表结构设计

数据库表的结构设计可谓是ofbiz除技术框架之外,另一个非常值得学习的方向.这篇文章我们来谈谈ofbiz对电子商务会员表的设计. PARTY ofbiz对人.团体进行了抽象,称之为party,翻译为中文称之为"会员"(但我觉得抛开领域,如果你也有相关的设计需求,在其他领域可能称之为团体更合适).会员在ofbiz被设计为一个抽象的概念(对应到面向对象设计中,你可以称其为一个基类),它有两个具体的延伸(继承者):分别是PERSON以及PARTY_GROUP.数据库的E-R图: 这里PERS

数据库表结构设计方法及原则(Ali)

数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际开发中最为常见的设计范式有三个:第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式:第二范式在第一范式的基础之上更进一层.第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言).也

通过Excel生成PowerDesigner表结构设计

说明:近期做部分表结构设计,在word里设计调整好了,需要整理到PowerDesigner中,但是手工录入太麻烦. 找了个工具(地址:http://www.cnblogs.com/hwaggLee/p/5542078.html),将其做了部分修改和完善,并支持多个表同时导入. 使用方法: 1.整理Excel.文件名为Temp.xlsx,放到D:根盘目录下.每个sheet页是一个表,格式如下: 2.打开PowerDesinger,新建模型 3.打开命令执行功能. 4.将脚本复制到窗口中,点Run,

浅谈数据库用户表结构设计,第三方登录

说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少.与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位. 先前设计: id username password 用户名加上密码,解决简单需求,留个id作为其他表的外键.当然,那时候密码还可能是明文存储,好点的知道md5. 后来呢,随着业务需求的拓展,要加个用户状

mysql 用户表结构设计,第三方登录

说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少.与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位. 先前设计 idusernamepassword用户名加上密码,解决简单需求,留个id作为其他表的外键.当然,那时候密码还可能是明文存储,好点的知道md5. 后来呢,随着业务需求的拓展,要加个用户状态 st

表结构设计器(EZDML)1.98版发布

表结构设计器(EZDML)是一个免费的数据库建表的小软件,可快速的进行数据库表结构设计,建立数据模型,能迅速生成代码模板.简单界面和字典文档,支持脚本编程. 新版本大概有以下改进: 1.修复了部分BUG: 2.导出文件支持WORD和HTML(模型图上右键导出,默认导出EXCEL,可选择文件类型为WORD和HTML): 3.支持为每个表设置不同的背景颜色(模型图上选表右键设置实体颜色): 4.表属性的生成页支持特殊复制,可将生成结果复制为C.JAVA.DELPHI.PL/SQL等代码字符串: