gpt4 book ai didi

mysql - 满足3NF的数据库设计

转载 作者:可可西里 更新时间:2023-11-01 08:45:10 25 4
gpt4 key购买 nike

我想设计一个数据库,但遇到了一些困难。我有

Students
id, name, group, year of study, specialization, list of scolarships

Scolarships
id, name, description, duration, list of applicants

根据我目前所读的内容,我知道单元格中不能存储列表。所以我的问题是:我怎样才能代表我目前拥有的每个表中的这两个列表?

我正在考虑创建另一个表,但我不知道如何设计它。请帮我提一些建议。

最佳答案

这里的技巧是创建第三个表(我称之为 Bridge),其中包含学生与其奖学金之间的关系。该表将包含两个指向 StudentsScholarships 表的外键。当您想要获得学生列表及其奖学金时,您将使用此表连接原始问题中的两个规范化表。

Students (id, name, group, year of study, specialization)           id is a primary key
Scholarships (id, name, description, duration) id is a primary key
Bridge (student_id, scholarship_id) both are foreign keys

然后,当您想要获得获得奖学金的学生列表时,您可以像这样执行 JOIN 查询:

SELECT *
FROM
Students st
INNER JOIN Bridge b ON st.id = b.student_id
INNER JOIN Scholarships sc ON b.scholarship_id = sc.id;

关于mysql - 满足3NF的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31042930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com