首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实施“一个学生一个学期最多可以注册4个单元”

如何实施“一个学生一个学期最多可以注册4个单元”
EN

Database Administration用户
提问于 2021-03-02 05:42:43
回答 1查看 88关注 0票数 0

我在数据库实现方面有一个实践上的问题,我很困惑。对于这个数据库,我需要存储学生的注册信息。信息,如学生已注册的单位。单位和学生之间的关系是这样的,一个学生每学期最多可以注册4个单元,但是一个单元可以被许多学生录取。我的问题是,如何实现这样的限制:学生在mysql每学期只注册4个单元,使用检查或触发器?

如果学生和单位之间的关系是一对多的话,这是直接的,但在这里我们有一个1到4个(?)关系?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-03-02 08:08:34

我认为至少有两种可能性。

首先,在INSERT / UPDATE触发器之前,检查每个学生的注册数量,如果限制失败,则禁止插入/更新。在更新学生ID更改时限制错误数据所需的更新触发器。

第二,添加enroll_number列,它不是NULL,ENUM('1','2','3','4')和学生ID的组合是唯一的。

我不考虑这样的选项,即表包含4个字段,供4个不同的参与者使用--这是非规范化结构和不良实践。当所有加入者都存储在某种序列化数据类型(JSON,XML)的一列中时,变体的形式也是一样的。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/286267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档