您的位置:首页 > 编程语言 > Java开发

方立勋_30天掌握JavaWeb_数据库表设计

2017-04-10 23:33 531 查看
定义外键约束

丈夫、妻子表:

妻子用一个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)

);

当然显示实际开发中,有的为了查询效率,并不会这么设计,可能会去增加冗余字段加快查询速度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: