MySQL数据库之分享一个电子商城数据库的设计思路
小标 2019-03-06 来源 : 阅读 2690 评论 0

摘要:本文主要向大家介绍了MySQL数据库之分享一个电子商城数据库的设计思路 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之分享一个电子商城数据库的设计思路 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

MySQL数据库之分享一个电子商城数据库的设计思路

一.设计目标


本次设计为设计一个电子商城,即我们经常在淘宝,京东等网站看到的网店。这只是一个初步的设计,跟实际上的网店还有很多的差距。主要的差距在于数据的并发处理,图片服务器,视频服务器,以及用户访问信息服务器等。在此系统中进行了用户的各个功能的模拟以及用户端和后台管理端的交互。


二.数据库设计


在设计数据库之前,我们需要根据页面所要实现的功能对相应的数据库进行设想。


首先,我们可以从用户角度去考虑。我们需要创建一个用户信息表。


CREATE TABLE `user_info` (

  `user_name` varchar(10) NOT NULL DEFAULT '' COMMENT '用户名,登录时需要用的',

  `nick_name` varchar(10) DEFAULT '' COMMENT '昵称',

  `real_name` varchar(10) DEFAULT '' COMMENT '真实姓名,别人不可见',

  `birthday` date DEFAULT NULL,

  `tel_phone` varchar(20) DEFAULT NULL,

  `email` varchar(30) DEFAULT NULL,

  `address` varchar(50) DEFAULT '' COMMENT '默认收货地址',

  `user_id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,

  `grade` int(2) DEFAULT '1' COMMENT '会员等级',

  `password` varchar(10) DEFAULT NULL COMMENT '密码',

  PRIMARY KEY (`user_id`)

) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8;

   

在这个表中我已经做了比较详细的注释,其中我有一些想要说明的东西。user_name是我们的登录名称,而user_id是一个用户在一次访问中作为唯一标识符存在的标志,这个标志对用户并不可见。但却作为主键的形式在其他数据表中操作该用户的一些相关数据,之后的address项是默认地址。这个地址是默认的地址而不是该用户所用的全部的地址,关于用户的地址信息,我另外设计了一个新的表address_info。


CREATE TABLE `address_info` (

  `address` varchar(20) DEFAULT NULL,

  `user_id` varchar(255) DEFAULT NULL,

  `status` int(11) DEFAULT NULL COMMENT '是否为默认地址,1为默认地址,0为非默认地址',

  `tel_phone` varchar(11) DEFAULT NULL COMMENT '联系电话',

  `address_id` varchar(100) NOT NULL COMMENT '地址的id用来区分地址',

  `receiver_name` varchar(11) DEFAULT NULL COMMENT '接受者姓名',

  PRIMARY KEY (`address_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   

这个表,我需要进行一下简要的解释。我们的购物地址都有默认地址。所以我选择设置一个status属性来区分默认地址和非默认地址。我的设计是一个人可以拥有五个地址。这个表中有address_id这个属性。这个是以主键的身份存在,用来对相应的地址进行操作,比如关于某一行数据的增删改查,作为前台和后台的传递标识。


接下来我想介绍一下我们都经常使用的一项功能,那就是优惠券的领取。我们知道,优惠券的业务处理也是比较复杂的,所以我为优惠券这一项专门设计了一张数据表coupon_info。


CREATE TABLE `coupon_info` (

  `preferential_amount` double(10,2) unsigned zerofill DEFAULT NULL COMMENT '优惠金额限度',

  `minimum_consumption_amount` double(10,2) unsigned zerofill DEFAULT NULL COMMENT '最低金额限度',

  `user_id` varchar(10) DEFAULT NULL COMMENT '持有者的id',

  `user_name` varchar(10) DEFAULT NULL COMMENT '持有者的姓名',

  `deadline` date DEFAULT NULL COMMENT '截止日期',

  `shop_name` varchar(10) DEFAULT NULL COMMENT '优惠券的商家名',

  `coupon_id` varchar(10) NOT NULL,COMMENT'优惠券的id'

 

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   

关于优惠券这一项我也专门设计了一个coupon_id,这个id就是该用户所领取的优惠券类型的存在标识,用户相应的优惠券的相关操作。之后,从商家的角度考虑,我设计了一个优惠券的仓库coupon_warehouse_info,也就是所有优惠券的集合。


CREATE TABLE `coupon_warehouse_info` (

 `preferential_amount` double(10,2) DEFAULT NULL COMMENT '优惠金额限度',

 `minimum_consumption_amount` double(10,2) DEFAULT NULL COMMENT '最低金额限度',

 `deadline` date DEFAULT NULL COMMENT '截止日期',

 `shop_name` varchar(50) DEFAULT NULL,

 `count` int(10) DEFAULT NULL COMMENT '剩余的优惠券数量',

 `coupon_id` varchar(50) NOT NULL COMMENT '优惠券id便于修改优惠券的相关信息',

 PRIMARY KEY (`coupon_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   

在这个表中我们同样发现了coupon_id,这个的含义和coupon_info表中的coupon_id的含义相同。用于执行相应的优惠券领取操作。


我们的淘宝账号都绑定了银行卡,银行卡为支付宝提供了操作我们的银行卡金额操作的接口。同样我设计了用户的银行卡信息数据库card_info进行模拟。


CREATE TABLE `card_info` (

  `card_no` varchar(10) DEFAULT NULL COMMENT '银行卡号',

  `card_money` double(100,0) DEFAULT NULL COMMENT '余额',

 `user_name` varchar(10) DEFAULT '' COMMENT '持有者',

  `card_name` varchar(10) DEFAULT NULL COMMENT '银行名称'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   

这个数据表很好理解。


之后我从购物操作方面进行考虑。分别设计了购物车表单shopping_cart_info,收藏夹表单collection_info和订单表单order_info。


CREATE TABLE `collection_info` (

  `user_id` varchar(10) DEFAULT NULL COMMENT '收藏的用户的id',

  `img_id` varchar(10) DEFAULT NULL COMMENT '图片的名称,便于寻找图片',

  `product_name` varchar(10) DEFAULT NULL COMMENT '商品名称',

  `shopping_name` varchar(10) DEFAULT NULL COMMENT '店名',

  `product_id` varchar(10) NOT NULL COMMENT '商品号',

  PRIMARY KEY (`product_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `shopping_cart_info` (

  `user_name` varchar(10) DEFAULT NULL COMMENT '用户名',

  `product_name` varchar(10) DEFAULT NULL,

  `product_number` double(10,2) DEFAULT NULL COMMENT '商品数量',

  `product_total_price` double(10,2) DEFAULT NULL COMMENT '商品的总价',

  `img_id` varchar(10) DEFAULT NULL COMMENT '商品图片名',

  `shopping_id` varchar(50) DEFAULT NULL COMMENT '购物车商品项的id'

) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `order_info` (

  `order_id` varchar(50) NOT NULL COMMENT '订单id',

  `product_numbers` double(10,2) DEFAULT NULL COMMENT '商品数目',

  `product_info` varchar(50) DEFAULT NULL,

  `product_total_price` double(10,2) DEFAULT '0.00',

  `order_delivery_status` varchar(10) DEFAULT NULL COMMENT '订单的状态(例如是否发货,以及发货情况)',

  `express_delivery_company` varchar(10) DEFAULT NULL COMMENT '快递公司',

  `address` varchar(20) DEFAULT NULL COMMENT '收货地址',

  `user_evaluation_grade` int(2) unsigned zerofill DEFAULT '03' COMMENT '用户评价',

  `user_evaluation_content` varchar(100) DEFAULT NULL COMMENT '用户评价内容',

  `user_id` varchar(10) DEFAULT NULL COMMENT '买家的id',

  `user_name` varchar(10) DEFAULT NULL COMMENT '买家的用户名',

  `order_payment_status` varchar(10) DEFAULT NULL COMMENT '订单的支付情况',

  `product_profit` double<code class="sq    

   

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程