1.多表之间的关系

1.分类

一对一 人和身份证
一对多 员工和部门
多对多 学生和课程

2.实现关系
一对一:可以在任意一方添加唯一外键指向另一方的主键。
一对多:在多的一方建立外键,指向一的一方的主键。
多对多:需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键。

多表实现的案例分析

-- 创建旅游线路分类表 tab_category
-- cid 旅游线路分类主键,自动增长
-- cname 旅游线路分列名称非空,唯一。
create table  tab_category(cid int primary key auto_increment,cname varchar(100) not null unique
);-- 创建旅游线路表tab_route
-- rid 旅游线路主键,自动增长
-- rname 旅游线路名称非空,唯一,字符串100
-- price 价格;rdate 上架时间,日期类型; cid 外键,所属分类
create table tab_route(rid int primary key auto_increment,rname varchar(100) not null unique ,price double,rdate date,rou_cid int,foreign key (rou_cid) references tab_category(cid) -- constraint rou_cat_fk 省略,系统分配一个随机的外键约束名
);/*
创建用户表 tab_user
uid 用户主键,自增长
username 用户名100 唯一,非空
password 密码30 非空
name 真实姓名100
birthday 生日
sex 性别,定长字符串1
telephone 手机号 字符串11
email 邮箱,字符串长度100
*/
create table tab_user(uid int primary key auto_increment,username varchar(100) not null unique ,password varchar(30) not null ,name varchar(100),birthday date,sex char(1) default '男',telephone varchar(11),email varchar(100)
);/*创建中间表  tab_favoriterid 旅游线路id,外键date 收藏时间uid 用户id ,外键rid和uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次*/create table tab_favorite(rid int,date datetime,uid int,-- 创建复合键primary key  (rid,uid), -- 联合主键foreign key (rid) references tab_route(rid),foreign key (uid) references tab_user(uid));

数据库的设计及经典案例相关推荐

  1. 视频教程-Oracle数据库开发技巧与经典案例讲解一-Oracle

    Oracle数据库开发技巧与经典案例讲解一 Oracle DBA,熟悉Unix操作系统,精通Oracle数据库. 曾任职某大型金融IT公司,负责银行领域数据库构建与运维,维护大量银行数据库系统.目前在 ...

  2. 高贵灰html设计,设计时代 经典案例 | 极简水泥灰,一种高贵的朴素

    原标题:设计时代 经典案例 | 极简水泥灰,一种高贵的朴素 混凝土显示的是一种最本质的美感 体现的是"素面朝天"的品位 我们通常把素混凝土俗称为"水泥墙" 它具 ...

  3. 网站三级分销数据库如何设计,简单案例

    一.问题产生 有小伙伴微信私信我,说老板想设计一套三级返佣的微信淘宝客裂变系统,然后问我怎么搞- 咳咳,对于三级分销的数据库设计,相信很多小伙伴头疼的可能不是设计上,而是查询上,因为通常涉及到会员分级 ...

  4. 线性表应用之线性表算法设计六大经典案例

    目录: 1.顺序有序表的合并         重复式合并         不重复式合并 2.链式有序表的合并         重复式合并         不重复式合并 3.链式有序表的反序合并 4.两 ...

  5. 关于Visual C#.NET数据库开发经典案例解析(附光盘两张)(珍藏版)—的读后感...

    关于Visual C#.NET数据库开发经典案例解析(附光盘两张)(珍藏版)- 评论 读后感:里面的内容很经典,很实用 读后感:给初学者是好,但是是比较旧的了!VS2003 C/S的 读后感:< ...

  6. Py经典案例:利用Python调用数据库历史记录文件,实现BTC、LTC等Encrypted currency找出最佳出仓价、收益比的加密币模拟交易系统

    Py经典案例:利用Python调用数据库历史记录文件,实现BTC.LTC等Encrypted currency找出最佳出仓价.收益比的加密币模拟交易系统 目录 实现结果 设计思路 实现代码 实现结果 ...

  7. 《不只是美:信息图表设计原理与经典案例》—— 2.5 功能限制形式

    本节书摘来异步社区<不只是美:信息图表设计原理与经典案例>一书中的第2章,第2.5节,作者:[美]Alberto Cairo,更多章节内容可以访问云栖社区"异步社区"公 ...

  8. Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略

    Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介.使用方法.经典案例之详细攻略 目录 *args和**kwargs(设计不同数量的参数函数)的简介 1 ...

  9. DL之Keras:基于Keras框架建立模型实现【预测】功能的简介、设计思路、案例分析、代码实现之详细攻略(经典,建议收藏)

    DL之Keras:基于Keras框架建立模型实现[预测]功能的简介.设计思路.案例分析.代码实现之详细攻略(经典,建议收藏) 目录 Keras框架使用分析 Keras框架设计思路 案例分析 代码实现 ...

  10. 网页设计经典案例(Web)

    网页设计经典案例 一.实现效果(一) 源代码(二) <!DOCTYPE html> <html lang="en"> <head><met ...

最新文章

  1. 方差为平方的均值减去均值的平方
  2. 使用Ehcache+Redis实现分布式缓存
  3. JMeter 下载安装教程
  4. 【一】Drupal 入门之新建主题
  5. RDIFramework.NET ━ 9.4 角色管理 ━ Web部分
  6. 创新工场CE0李开复:互联网创业黄金时代来临
  7. php自动释放mysql连接,php怎么关闭mysql连接
  8. Exchange2003的设定及安全管理
  9. 深入理解 MapReduce
  10. 網站滲透測試實務入門--工具清單
  11. 用Mediator Pattern + Queue 解决 订单处理流程
  12. linux汉诺塔实验报告,汉诺塔问题实验报告
  13. android webview 获取cookie,Android WebView 之Cookie
  14. 快速入门高斯过程(Gaussian process)回归预测
  15. 计算机c盘加容量,win7 增加c盘空间方法_win7 如何增加c盘容量-win7之家
  16. 计算机专业会涉及数学吗,数学不好的人还适合学计算机吗?
  17. 数据如何变成知识(2):数据湖和数据沼泽
  18. 【AVS系列】AVS2参考软件RD17.0
  19. Eclipse创建C++工程并解决“Symbol 'std' could not be solved”
  20. JAVA多线程向kafka的topic各分区中写入本地数据

热门文章

  1. vs2013制作滚屏软件
  2. CAN:CANape使用Function处理数据
  3. Java内存模型与Jvm内存模型
  4. Modelsim下载 安装 与 和谐教程
  5. 施乐s2110进入维修模式_施乐进入维修模式步骤
  6. linux pycharm 汉化包安装教程
  7. pycharm汉化包
  8. 这个俄罗斯大神,又出新作品了!
  9. Autodesk AutoCAD 2023 Mac中文版安装方法
  10. Auto CAD:CAD软件之上菜单栏(CAD选项设置、常用工具(样条曲线/多段线/倒角/移动/镜像/偏移/修剪工具/延伸/阵列)、修改工具(拉长/编辑多段线/对齐命令、注释/标注)简介之详细攻略