gpt4 book ai didi

mysql - 需要数据库设计方面的帮助

转载 作者:行者123 更新时间:2023-11-29 09:11:55 25 4
gpt4 key购买 nike

我目前不知道如何设计这个表,所以我真的很想得到一些建议。说明如下:

表格将保存 3 个考试结果。

  1. 考试 A:8 门必修科目,以及无限个选修科目。
  2. 考试 B:6 门必修科目,以及无限个选修科目。
  3. 考试 C:1 门必修科目和 4 门选修科目。

要记住的功能:

  1. 每个科目的成绩都需要可搜索(例如:在考试 A 中查找数学的 A)
  2. 基本总计算(例如:计算考试 A 的数学中有多少个 A)

只要插入数据,我就能想到一些东西,但是当将这些功能混合在一起时,它就行不通了。

我的最后一招是使用一个表,其中包含:studentid、exam、subjectcode、result。这将像可搜索和可计算一样工作,但从长远来看,我有一种非常困惑和巨大的数据库的感觉。

我当前的设计(由我的 friend 提供):每个主题及其结果都有自己的领域。它有效,但很难扩展(添加更多主题)。

有什么建议吗?

最佳答案

可能的表结构(省略列定义):

Exam
---------
Exam_ID
Exam_name
number_of_req_subjects
number_of_opt_subjects <---- -1 could be infinite

Subject
-----------
Subject_id
subject_name

exam_subject
------------
exam_subject_id
exam_id
subject_id
required

exam_result
------------
exam_result_id
exam_subject_id
result

要获取考试 A 中数学的 A 数:

SELECT count(exam_result_id)
FROM exam_result er, exam_subject es, subject s, exam e
WHERE er.exam_subject_id = es.exam_subject_id
AND es.subject_id = s.subject_id
AND es.exam_id = e.exam_id
AND e.exam_name = 'A'
AND s.subject_name = 'MATH'

(我知道使用联接比在哪里联接不同的表更好,但我有点懒)。

主题结果可搜索...我们没有足够的信息。事实上,我的答案可能完全不对劲,但已经是我认为根据目前给定信息所能得到的最接近的答案了。使某些内容可搜索只需创建一个足够有用的 select 语句即可。

关于mysql - 需要数据库设计方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347988/

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