基于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模式的电商项目开发系列之1:项目搭建
- 基于MVC模式的电商项目开发系列之3:后台功能
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)-数据库设计
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- 循序渐进开发WinForm项目(1) --数据库设计和项目框架的生成
- 【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计
- 基于MFC设计NX二次开发界面——项目配置注意点
- 项目开发周期与数据库设计对比
- Java系列--第七篇 基于Maven的Android开发实战项目
- FPGA开发之Tcl的基于项目设计
- SpringMVC经典系列-02基于Spring2.5注解的方式进行项目开发---【LinusZhu】
- 【Qt编程】基于Qt的词典开发系列<二>--本地词典的设计
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- 软件工程之— 项目开发文档(数据库设计说明书)
- 基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)-数据库设计
- 基于MVC模式开发Web应用系统设计与实现的原理
- 工作流引擎开发系列二数据库设计
- 【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示
- 项目开发,数据库设计技巧