定义外键约束
丈夫、妻子表:
妻子用一个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. 线程组多次调用_详细分析 Java 中启动线程的正确和错误方式
  2. 数据在HDFS和HBASE之间互相传递的过程
  3. 如何在vc的拆分窗口中使用CFormView派生类
  4. 如何调用Altera FPGA的内嵌乘法器
  5. Smoke Test与Ad hoc Test
  6. 为什么不能在子类的初始化列表里初始化父类的成员
  7. ContentProvider和Uri详解
  8. css过度效果 从无到有,求教,对于CSS3 transition和transform实现的一个特效原理不是太明白?...
  9. ECCV18 | 无监督难分样本挖掘改进目标检测
  10. C语言输入中10A20B,C语言实验报告第3章答案.doc
  11. java小数正负数据类型_Java - day001 - 8种基本数据类型
  12. 构建机器学习系统的20个经验教训
  13. 主板24pin接口详图_特殊装机:24pin主板用20pin的供电
  14. 主动学习、纯半监督学习与直推学习
  15. Youtube字幕下载转SRT字幕
  16. 安装RabbitMQ出现Plugin configuration unchanged.问题
  17. Seata部署TC服务实现高可用和异地容灾
  18. 解读PMP考点:管理储备和应急储备
  19. 用 CSS 实现图片的马赛克风格
  20. Windows PowerShell学习笔记(一)

热门文章

  1. [原创]DebugTools系列(4):AQTime经验总结
  2. C# 之 static的用法详解
  3. Redsi和Memcached区别总结
  4. 三 mybatis typeAlias(别名)使用和resultMap使用
  5. mysql存储过程编写
  6. 谁占用了我的Buffer Pool
  7. PC远程调试移动设备
  8. 创建windows azure 云服务
  9. JavaScript 渐变效果
  10. 淘宝Django书籍调研