您的位置:首页 > 数据库

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

2016-11-23 15:33 447 查看

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.商品模块数据库设计

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

图片的保存分成两个部分

图片文件本身,它保存在服务器的某个目录下

将图片的地址保存到表中,就是字符串。

一对多的表设计



对多对表设计

关于商品的规格参数。

不同类型的商品,其规格参数不同。







如何保存这些信息?

直接使用一个字段保存是无法实现的。

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

商品的属性分成两大类:

通用属性:所有的商品都具备的属性,如名称,价格,图片等。

扩展属性,不同类型的商品,其扩展属性是不同的,如手机有分辨率、像素、摄像头等,而服装有尺码、季节、材质,而书有出版社,作者。

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

一个商品有多少个扩展属性

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

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

首先,有一张表就是扩展属性表。

最后的设计如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mvc 数据库