当前位置: 首页 > news >正文

MySQL数据表的设计

实际工程中, 对于数据表的设计和创建, 我们遵循以下步骤: 首先确定实体, 找到关键名词, 提取关键信息, 设计表有哪些列, 每一列是什么. (有几个实体, 一般就创建几个表, 一般一个表对应一个实体)

实体之间的关系:

1. 一对一关系

例如:

一个学生, 只能有一个账号; 一个账号只能被一个学生持有.

解决方案:

(1) 设计一个表, 同时包含学生信息和账号信息.

table student (studentId, name, accountName, password).

(2) 设计两个表(student表和account表, 并将两个表进行关联).

table student (studentId, name, accountId).

table account (accountId, accountName, password).

或:

table student (studentId, name).

table account (accountName, password, studentId).

2. 一对多关系:

例如:

一个学生只能属于一个班级; 但是一个班级可以包含多个学生.

解决方案: 创建一个student表, 创建一个class表. 将两表通过classid进行关联.

table student (studentId, name, classId).

table class (classId, className).

3. 多对多关系

例如: 一个学生可以选择多门课程; 一个课程也可以被多个学生选择.

解决方案: 创建三个表(student表, course表, 还有关联表student-course表), 通过关联表对两表进行联系.

table student (studentId, studentName).

table course (courseId, courseName).

table student-course (studentId, courseId).

4. 没有关系

对于没有关系的两个实体, 分别创建各自的表即可.

 以上就是本篇博客的全部内容啦,如果喜欢小编的文章,可以点赞,评论,收藏~

http://www.lryc.cn/news/360343.html

相关文章:

  • Flutter开发效率提升1000%,Flutter Quick教程之对写好的Widget进行嵌套
  • 2020编程语言排序:探索编程界的热门与趋势
  • 提高工作效率的招数
  • css特殊效果和页面布局
  • JavaScript中对象的增删改查
  • 技术周总结 2024.05.27~06.02(java bean冲突 软件工程)
  • 「前端+鸿蒙」核心技术HTML5+CSS3(八)
  • 15届蓝桥杯决赛,java b组,蒟蒻赛时所写的题思路
  • 2024蓝桥杯国赛C++研究生组游记+个人题解
  • C#WPF数字大屏项目实战07--当日产量
  • MyBatis源码分析--02:SqlSession建立过程
  • SOUI Combobox 实现半透明弹出下拉框
  • Python 猜数系统 PyQt框架 有GUI界面 (源码在最后)【含Python源码 MX_002期】
  • npm install pubsub-js报错的解决汇总
  • nuxt2:自定义指令 / v-xxx / directives / 理解 / 使用方法 / DEMO
  • 基础—SQL—DCL(数据控制语言)小结
  • 一文彻底讲透 PyTorch
  • JVM常用概念之锁粗化和循环
  • HTML (总结黑马的)
  • YOLOv8 segment介绍
  • PMBOK® 第六版 项目整合管理概念
  • 【Qt】【模型视图架构】代理模型
  • Flutter 中的 IconTheme 小部件:全面指南
  • virtualbox虚拟机、centos7安装增强工具
  • Kotlin 泛型
  • Tomcat 面试题(一)
  • 跟踪一个Pytorch Module在训练过程中的内存分配情况
  • LeetCode 2965.找出缺失和重复的数字:小数据?我选择暴力(附优化方法清单:O(1)空间方法×3)
  • 【运维】VMware Workstation 虚拟机内无网络的解决办法(或许可行)
  • 如何使用Dora SDK完成Fragment流式切换和非流式切换