当前位置:首页 > 网络教程 > php > SQL server 数据库设计

SQL server 数据库设计

一叶知秋2024-03-29 12:15:27php11


--数据库设计


--数据库设计规范三范式


--第一范式是对属性的原子性,不可分解
--分开成多个属性




--第二范式:是对记录的唯一性,要求记录有唯一标识,实体唯一性
--问题:数据冗余,删除不当会导致丢失实体
--方法分开成几个表 实体表 关联表 

--第三范式 :要求任何字段不能出其他字段派生出来,他要求字段没有冗余,既不存在传递依赖
--问题:会产生数据冗余
--解决方法:拆分成两个表


--表关系(一对一,一对多,多对多)
--—对多 (专业表,学生表)
create table Profession 
(
ProId int primary key identity(1,1),
ProName varchar(50) not null 

)

create table Student
(
	StuId int primary key identity(1,1),
	ProId int not null, --专业编号(用于关联专业表)
	StuName varchar(50) not null,
	StuSex varchar(5) not null

)
insert into Profession (ProName) values('语文')
insert into Profession (ProName) values('计算机')

insert into Student(ProId,StuName,StuSex) values(1,'刘备','男')


insert into Student(ProId,StuName,StuSex) values(2,'关羽','男')


insert into Student(ProId,StuName,StuSex) values(3,'张飞','男')


--一对一的关系是特殊的一对多的关系
--符合一对一的两个表可以合成一个表
--一对一注意不要把对应的主键设置为自动增长



--多对多的关系(学生信息,课程信息)
--(添加一张表表示关系)
create table Student 
(
StuId int primary key identity(1,1), --学生编号
StuName varchar(50) not null,
StuSex char(2) not null

)
create table Course
(
CourseId int primary key identity(1,1),
CourseName varchar(30) not null ,
CourseContent text

)
create table Exam --(两表之间的关系 关系表 多对多)
(
ExamId int primary key identity(1,1),
StuId int not null,
CourseId int not null,
Scorse int not null
)

扫描二维码推送至手机访问。

版权声明:本站部分文章来自AI创作、互联网收集,请查看免责申明

本文链接:https://www.yyzq.team/post/314982.html

标签: 数据库sql
下载此文章:
新工具上线:
分享给朋友: