定义外键约束
丈夫、妻子表:
妻子用一个husband_id来说明wife丈夫是哪个。

一对多对象表设计

部门、员工表:
一个部门可以有多个员工,员工表通过department_id说明属于哪个部门。

一对多或多对一的对象存到数据库时,表的设计方案
部门和员工
create table department
(
id int primary key,
name varchar(40)
);

create table employee
(
id int primary key,
name varchar(40),
salary decimal(8,2),
department_id int,
constraint department_id_FK foreign key(department_id) references department(id)
);

多对多对象表关系设计

教师、学生表:
通过一张中间表teacher_student来说明关系。

多对多对象的表的设计(老师和学生)
create table teacher
(
id int primary key,
name varchar(40),
salary decimal(8,2)
);

create table student
(
id int primary key,
name varchar(40)
);

create table teacher_student
(
teacher_id int,
student_id int,
primary key(teacher_id,student_id),
constraint teacher_id_FK foreign key(teacher_id) references teacher(id),
constraint student_id_FK foreign key(student_id) references student(id)
);

一对一对象表设计(具体主从关系)

人、身份证表:
省份证是从表,直接用主键id作为外键。

一对一的对象的数据库设计
create table person
(
id int primary key,
name varchar(40)
);

create table idcard
(
id int primary key,
city varchar(40),
constraint id_FK foreign key(id) references person(id)
);

自连接的表设计

家谱管理系统。
打个比如:你爷爷生了你爸爸,你爸爸生你,你又生了孩子。
Person对象:id、姓名、Person(记住爸爸)、Children(记住孩子)。

这样的表设计,直接存入了一张表,用一个字段parent_id来说明。parent_id 来自id,需要加外键约束,不能加非空约束

create table person
(
id int primary key,
name varchar(40),
parent_id int,
constraint parent_id_FK foreign key(parent_id) references person(id)
);

当然显示实际开发中,有的为了查询效率,并不会这么设计,可能会去增加冗余字段加快查询速度。

方立勋_30天掌握JavaWeb_数据库表设计相关推荐

  1. 方立勋_30天掌握JavaWeb_自己编写jdbc框架、dbutils框架(未完)

    元数据:数据库.表.列的定义信息. Connection.getDatabaseMetaData() DataBaseMetaData对象 getURL():返回一个String类对象,代表数据库的U ...

  2. 方立勋_30天掌握JavaWeb_自定义标签

    自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 编写一个实现Tag接口的Java类(标签处理器类). 编写标签库描述符(tl ...

  3. 方立勋_30天掌握JavaWeb_使用httpUrlConnection模似ie

    在手机应用开发常常需要用到. 模拟ie浏览器访问. import java.io.InputStream; import java.io.OutputStream; import java.net.H ...

  4. 方立勋_30天掌握JavaWeb_国际化开发

    国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化又称为 i18n:internati ...

  5. 方立勋_30天掌握JavaWeb_(Servlet+JSP+JavaBean实现)用户注册和登陆

    JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据. Servlet+JSP+JavaBean(M ...

  6. 方立勋_30天掌握JavaWeb_(JSP+JavaBean实现)简单计算器

    JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据. Servlet+JSP+JavaBean(M ...

  7. 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)

    JDBC简介 数据库驱动 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC. JDBC全称为:Java Data Base Connectivity(java ...

  8. 方立勋_30天掌握JavaWeb_Servlet

    Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览 ...

  9. 方立勋_30天掌握JavaWeb_Servlet Filter(过滤器)未完

    Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片 ...

最新文章

  1. 2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】
  2. Oozie中允许hive程序xml配置
  3. Android studio | From Zero To One ——滚动视图ScrollView
  4. Java多线程环境检测系统中是否存在死锁和死锁恢复代码示例
  5. 飞鸽传书内部护眼神功
  6. 理论基础 —— 线性表 —— 单链表
  7. 北京工业大学c语言期末考试题,北京工业大学C语言部分练习答案.docx
  8. JAVA听力源码_剑桥雅思13Test4Section4听力原文与答案 The History of Coffee
  9. java获取已经打开的串口的输出流_使用Java读取串口的程序(转)
  10. _blank开新窗口不符合标准?
  11. 前端学习JQuery篇03——基本操作(效果)
  12. Lightroom Classic 教程,如何将照片从 Lightroom 移至Ps,在 Ps 中为照片应用滤镜?
  13. 面试感悟----一名3年工作经验的程序员应该具备的技能
  14. 读书行动笔记2013第2本:《整理的艺术》
  15. 目前见过最好的豆瓣电台第三方程序
  16. Nitrux安装JDK-10(Linux通用)教程
  17. 组建团队和调整团队结构
  18. 中文转UTF-8 和UTF-8转中文
  19. Python实现随机抽签
  20. 11_FreeRTOS时间片调度实验

热门文章

  1. xmake 新站发布:xmake.io
  2. linux小知识之终端
  3. JS构造map/dict结构
  4. POJ-2728 Desert King 最优比例生成树 01分数规划/参数搜索
  5. intellij运行多个工程
  6. 定位低效SQL与不同的Extra类型(转载)
  7. navivat11.0.7在linux下面的破解方法
  8. C4.5-Release8的代码架构图
  9. windows下面sublime无法粘贴复制的问题解决(转)
  10. mysql如何获取句柄_关于获取进程句柄的问题