基于MVC模式的电商项目开发系列之2:数据库设计

来源:互联网 发布:数据分析材料 编辑:程序博客网 时间:2024/05/16 15:41

1.数据库设计要点分析

  • Mysql数据类型
  • 表间关系

1.1 数据类型

Mysql数据类型有哪些?

  • 数值类型,整数(tinyint、smallint、mediumint、int、bigint)、小数(float、decimal)
  • 字符串类型,char、varchar、text,enum,set
  • 日期时间类型,date,time,datetime,timestamp

Msyql没有布尔类型。如何表示布尔类型呢?
有两种解决方案

  • 数值,tinyint,应用比较广泛
  • 字符串,enum

在php编程中,对于时间,实际上使用比较多的是int。

对于表中的每一个字段,要选用最合适的数据类型。


1.2 表间关系

表与表的 什么关系?
A表和B表
A表中的记录和b表中的记录有哪些关系?
有三种:

  • 一对一
  • 一对多(多对一)
  • 多对多(重点)

如果a表中的一条记录,对应到b中只有一条,反之亦然,一对一。
如果a表中的一条记录,对应到b中有n条,反之,b表中的一条记录对应到a表中是一条,一对多。
如果a表中的一条记录,对应到b中有n条,反之,b表中的一条记录对应到a表中是n条,多对多。

一般来说,一对一出现比较少。一对多是最多的,多对多是最难的。

对于多对多的情况,我们是新增一张表,将一个多对多的关系转化成两个一对多的关系。

这里写图片描述


2.商品模块数据库设计

首先需要从商品出发。核心就是商品。

图片的保存分成两个部分

  • 图片文件本身,它保存在服务器的某个目录下
  • 将图片的地址保存到表中,就是字符串。

一对多的表设计

这里写图片描述

对多对表设计

关于商品的规格参数。
不同类型的商品,其规格参数不同。
这里写图片描述

这里写图片描述

这里写图片描述

如何保存这些信息?
直接使用一个字段保存是无法实现的。

只能用多个字段,每一个字段可以用一条记录保存。

商品的属性分成两大类:

  • 通用属性:所有的商品都具备的属性,如名称,价格,图片等。
  • 扩展属性,不同类型的商品,其扩展属性是不同的,如手机有分辨率、像素、摄像头等,而服装有尺码、季节、材质,而书有出版社,作者。

商品和扩展属性(规格参数)之间的关系—- 多对多

  • 一个商品有多少个扩展属性
  • 一个扩展属性 被多少商品拥有

隐含这个一个内容,就是扩展属性作为单独的信息来保存的。
首先,有一张表就是扩展属性表。

最后的设计如下:

这里写图片描述

0 0
原创粉丝点击