第二天ci项目规划 数据库设计
商品 + 用户 + 订单
数据库设计思想和方法
- 关于商品品牌 ,分类 ,属性 如何表示 用一个字段 还是再设计一张表 品牌和商品 是一种信息 还是两种信息 一张表一般只保存一种信息
- 品牌和商品能否独立分开 二者生命周期是否一致
- 表与表之间的关系
- 一对一 A中一条记录 在B中对应的最多只有一条 反之亦然
- 一对多 A中一条记录在b中对应N条 反之只有一条
- 多对多 A中记录在b中对应的有N条 反之有m条
- 分类的层级关系
- 使用path 自引用
- 商品属性信息保存 商品与属性独立存储 attribute表属性与商品表关系 多对多 简化为两个一对多关系 goods_attr另attribute有type需要一张表
-
订单设计 一个订单 可包含多种商品 一个商品 可能有多个订单 订单和商品之间多对多 应该在添加一张表表示他们之间关联联系
drop table if exists attr;
drop table if exists brand;
drop table if exists category;
drop table if exists goods;
drop table if exists goods_attr;
drop table if exists goods_type;
drop table if exists orde_rinfo;
drop table if exists "order";
drop table if exists user;
/==============================================================/
/* Table: attr /
/==============================================================*/
create table attr
(
attr_id integer not null auto_increment,
attr_name varbinary(10) not null,
input_type integer not null,
"values" varchar(10) not null,
type_id integer not null,
primary key (attr_id)
)
engine = MYISAM;/==============================================================/
/* Table: brand /
/==============================================================*/
create table brand
(
brand_id integer not null auto_increment,
brand_name varchar(10),
primary key (brand_id)
)
engine = MYISAM;/==============================================================/
/* Table: category /
/==============================================================*/
create table category
(
cat_id integer not null auto_increment,
cat_name varchar(10) not null,
parent_id integer not null,
primary key (cat_id)
)
engine = MYISAM;/==============================================================/
/* Table: goods /
/==============================================================*/
create table goods
(
goods_id integer not null auto_increment,
goods_name varchar(10) not null,
market_price decimal(10,2) not null,
shop_price decimal(10,2) not null,
goods_img char(10) not null,
goods_number integer not null,
goods_desc text(100) not null,
brand_id integer not null,
cat_id integer not null,
primary key (goods_id)
)
engine = MYISAM;/==============================================================/
/* Table: goods_attr /
/==============================================================*/
create table goods_attr
(
rec_id integer not null auto_increment,
goods_id integer not null,
attr_id integer not null,
value char(10) not null,
primary key (rec_id)
)
engine = MYISAM;/==============================================================/
/* Table: goods_type /
/==============================================================*/
create table goods_type
(
type_id integer not null auto_increment,
type_name varbinary(30) not null,
primary key (type_id)
)
engine = MYISAM;/==============================================================/
/* Table: orde_rinfo /
/==============================================================*/
create table orde_rinfo
(
red_id integer not null auto_increment,
order_id integer not null,
goods_id integer not null,
primary key (red_id)
)
engine = MYISAM;/==============================================================/
/* Table: "order" /
/==============================================================*/
create table "order"
(
order_id integer not null,
user_id integer,
order_sn char(10) not null,
order_tome integer not null,
total_price decimal(10,2) not null,
primary key (order_id)
)
engine = MYISAM;/==============================================================/
/* Table: user /
/==============================================================*/
create table user
(
user_id integer not null auto_increment,
name varchar(10) not null,
password char(10) not null,
email varchar(10) not null,
primary key (user_id)
)
engine = MYISAM;alter table attr add constraint FK_Reference_5 foreign key (type_id)
references goods_type (type_id) on delete restrict on update restrict;alter table goods add constraint FK_Reference_1 foreign key (brand_id)
references brand (brand_id) on delete restrict on update restrict;alter table goods add constraint FK_Reference_2 foreign key (cat_id)
references category (cat_id) on delete restrict on update restrict;alter table goods_attr add constraint FK_Reference_3 foreign key (goods_id)
references goods (goods_id) on delete restrict on update restrict;alter table goods_attr add constraint FK_Reference_4 foreign key (attr_id)
references attr (attr_id) on delete restrict on update restrict;alter table orde_rinfo add constraint FK_Reference_7 foreign key (goods_id)
references goods (goods_id) on delete restrict on update restrict;alter table orde_rinfo add constraint FK_Reference_8 foreign key (order_id)
references "order" (order_id) on delete restrict on update restrict;alter table "order" add constraint FK_Reference_6 foreign key (user_id)
references user (user_id) on delete restrict on update restrict;
第二天ci项目规划 数据库设计的更多相关文章
-
第二天ci项目规划 前后台分离
第二天ci项目规划 前后台分离 1/31/2016 2:40:26 PM 前后台 表面上看前后台不同网站 但是数据是他们之间的联系要完成结构完整项目 设计好前后台 基于mvc框架 前后台那些地方不同 ...
-
HNU_团队项目_数据库设计感想_个人感想
数据库设计感想 个人的一点心得体会 最重要的放在最前面——讨论开会时的123经验 开会前对会议目的及方式要有所考虑: 不要随意无目的开会: 遵守时间,控制会议时间长度: 会议主持人要维持会议只需,有 ...
-
Django 博客项目01 数据库设计与验证码校验+Ajax登录
数据库设计 from django.db import models from django.contrib.auth.models import AbstractUser class UserInf ...
-
[ci]项目规划-后续
几个方面来写 1,搭建gitlab 配邮箱 域名等使之好用 2,搭建jenkins –yum,安装常见插件 3,搭建sonar,汉化 4,安装sonar-scanner 0,实现sonar ...
-
MySQL数据分析-(5)数据库设计之ER模型
大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...
-
15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...
-
常见电商项目的数据库表设计(MySQL版)
转自:https://cloud.tencent.com/developer/article/1164332 简介: 目的: 电商常用功能模块的数据库设计 常见问题的数据库解决方案 环境: MySQL ...
-
小福bbs—项目系统设计与数据库设计
这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 实现对校园论坛软件的制作,使其能够发布帖子,查看信息等 作业的正文 小福bbs--项目需求分析 ...
-
T-MAX—项目系统设计与数据库设计
团队作业第四次-项目系统设计与数据库设计 这个作业属于哪个课程 2019秋福大软件工程实践Z班 这个作业要求在哪里 团队作业第四次-项目系统设计与数据库设计 团队名称 T-MAX 这个作业的目标 在开 ...
随机推荐
-
Nginx+Keepalived(带Nginx监控脚本)
转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0220/151.html?1456381460 Keepalived+ nginx的安装部署 主机: ...
-
微软职位内部推荐-Software Engineer II-SDP
微软近期Open的职位: Position: SDE II The R&D of Shared Data Platform at Application and Services Group ...
-
以莫泰的形式进行页面转换(传值用block)
1.在第一个页面进入第二个页面可以使用莫泰的方式 在第一个页面包含第二个页面的头文件#import "FirstViewController.h"#import "Vie ...
-
windows上SVN服务器以及客户端TortoiseSVN的安装配置
(1)svn的安装 1. 下载软件:Setup-Subversion-1.7.5.msi,安装就很容易了,一路NEXT 2. 把SVN的bin文件夹路径添加到环境变量中 把svn安装目录下的bin路径 ...
-
ExtJs3常用控件操作实例
结合工作内容,不定期更新.这里面可能会讲到一些常用的组件的操作. json: { "total": 30, "data": [{ "funcAlign ...
-
OD: Kernel Vulnerabilities Analyze
内核漏洞大多出没于 ring3 到 ring0 的交互中.从 ring3 进入 ring0 的通道,以及操作系统提供的 API 都有可能存在漏洞.例如:驱动程序中 IoControl 的处理函数,SS ...
-
iOS keyChain(钥匙串)的简单使用
通常在开发中我们需要长久的保存某些值比如用户的账号密码等,对于隐私度很高的数据来说保证数据的安全性是尤为重要的.ios中的keyChain是一种很好的选择. 首先去开发者网站(https://deve ...
-
位运算之 C 与或非异或
与运算:& 两者都为1为1,否则为0 1&1=1, 1&0=0, 0&1=0, 0&0=0 或运算:| 两者都为0为0,否则为1 1|1 = 1, ...
-
JAVA IO流 InputStream流 Read方法
read()首先我们来看这个没有参数的read方法,从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中,返回值为0到255的int类型的值,返回值为字符的ACSII值(如 ...
-
剑指Offer 12. 数值的整数次方 (其他)
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目地址 https://www.nowcoder.com/practice/ ...