[MySQL]数据库设计


数据库面试中经常被问到某项目中的数据库如何设计的?

实际上并不是让你回答设计的过程,而是注重考察表的结构。回答该项目具体有几张表,每个表是做什么的,每张表中有哪些列,分别都是什么类型,代表了什么含义,有什么约束等等。这节我们详细讲一下数据库的设计问题。

数据库设计

我们采用一个案例来进行说明。假设现在需要设计一个教务系统来管理里很多的学生和班级。

1. 实体

实体:需求场景中的核心概念 / 重要名词。

对于教务系统来说,实体包含学生和班级。

2. 关系

关系:指的是实体与实体之间的关系。分别是一对一关系,一对多关系以及多对多关系。

Q:如何区分实体实体之间的关系?
A:造句。比如:
一对一关系:一个用户从属于一个学生,一个学生也只能拥有一个用户号。
一对多关系:一个学生从属于一个班级,但一个班级可以包含多个学生。
多对多关系:一个学生可以选多门课程,一个课程也可以被多名学生来选。

2.1 一对一关系

一对一关系是最简单的,可以采取以下几种方法来实现:

  • 直接把两个实体数据放在一张表中即可,即用户表和学生表拼成一个大表;
  • 在用户表中带有一个“学生id”字段,通过学生id字段的值和学生表关联起来࿱
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值