数据库设计
1.数据库设计要点分析
ü 字段类型,数据类型
ü 表间关系
(1).字段类型
在mysql中,有哪些数据类型?
ü 数值型:整型,tinyint、smallint、mediumint、int、bigint。小数,float、decimal
ü 字符串:varchar、char、text、(enum和set,很特殊)
ü 日期时间型:date,time,datetime,timestamp。开发中,使用int表示比较常见的。
没有布尔类型,布尔类型如何表示?用enum或者tinyint,用tinyint会方便些。
如果能用小的,就尽量用小的,可以提升效率,节省资源。
(2).表间关系
表间关系是什么?
表与表之间的关联,
A表中的一条记录对应到B表中有多少条?
B表中的一条记录对应到A表中有多少条?
有哪些?
A:B 1:1 B:A 1:1 -> 一对一
A:B 1:N B:A 1:1 -> 一对多
A:B N:1 B:A 1:1 -> 多对一
A:B 1:N B:A 1:N ->多对多
一对一比较少见。
多对多是最难的
如何表示一对多的关系呢?
在多的一方,增加一个外键,关联到一的一方的主键。
如何表示多对多的关系呢?
将一个多对多的关系转换成两个一对多的关系。所以需要增加一张中间关联表。
如图所示:

2.商品模块数据库设计
从哪儿开始?
从核心开始,核心是商品。
分析商品,有一张表叫goods
注意,图片的保存分两个部分,图片本身,上传到服务器的某个目录之下,然后将他的路径保存的表中字段中。
[绝招]:如何从一张表变成两张表
判断所要表示的是否是同一种信息。
商品信息
分类信息
品牌信息
关键:看它们的生命周期,生死与共。
再来考虑,商品的属性。
商品的属性分类两类:
ü 通用属性,所有的商品都具备的,比如名称,价格,图片等。存放在goods表中。
ü 扩展属性,也叫规格参数,不同类型的商品其规格参数是不一样的,服装有尺码、颜色、材料等,手机有分辨率,内存,存储,摄像头像素,书籍有作者,出版社,ISBN号。
这里主要是考虑扩展属性,如何保存?
最差的方式,用一个字段保存,放到goods中。虽然可行,但处理起来非常麻烦。
一个扩展属性应该用一条记录保存,需要加表,如何加?
商品和扩展属性之间的关系是什么?
多对多
意味着有三张表,所有的规格参数需要单独管理,所以首先有一张表,attribute,属性表。
最终,表结构设计如下:

浙公网安备 33010602011771号