数据库的设计
一、多表关系
1.一对一(例如:人和身份证)
实现:可以在任意一方添加唯一外键指向另一方的主键;或者这节加个字段,整合成一张表
如:在人信息表中添加身份证id字段这一外键,指向身份证信息表的主键id;或者在人信息表中添加身份证id字段
2.一对多、多对一(例如:员工和部门)
实现:在多的一方建立外键,指向一的一方的主键
如:在员工表添加部门id字段这一外键,引用部门表的主键字段
3.多对多(例如:学生和课程)
实现:添加中间表,中间表至少引用俩表的主键作为联合主键
如:在中间表添加学生id和课程id,作为联合主键,分别引用学生和课程的主键
二、数据库设计的范式
1.1NF第一范式每一列不可再拆分,称为原子性。
2.2NF第二范式就是在第一范式的基础上所有列完全依赖于主键列
特点:一张表只描述一件事情,表的每一列都完全依赖于主键
3.3NF在满足 2NF 的基础上,任何非主列不得传递依赖于主键
我的理解是先确定一些需要的字段,再看看怎么分表吧,满足前面三大范式就差不多满足设计要求了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现