Mysql

優化 Marksheet 數據庫

  • October 1, 2019
  1. 我正在嘗試為具有不同級別或班級的不同類型考試的學校的成績單數據設計一個數據庫。
  2. 是否有可能有一個表,我可以將數據儲存在字元串中(數組序列化 PHP)並輕鬆執行基於主題的搜尋(最大/最小/平均)。

表格看起來像這樣,有一些變化 -

5級

XXXXX ------ Math ----- Hindi ----- English
Amit -------- 10 ------- 20 ----------31
Alok -------- 10 ------- 20 ----------31

8級

XXXXX ------ Math ----- Hindi ----- English ---- Science
Amit -------- 10 ------- 20 ----------31 ----------20
Alok -------- 10 ------- 20 ----------31 ----------23

使用 PHP 的數組序列化,我將字元串中的數據標記為

a:4:{s:4:"math";i:20;s:5:"hindi";i:30;s:7:"english";i:23;s:7:"science";i:10;}

我應該有單獨的表還是可以有一個壓縮表,這樣數據庫就不會因為太多的行而變得太重?

你真的不應該在任何類型的結構中隱藏你想要做算術的數據。

使用一個有 4 列的表格:班級、學生、科目、分數。

然後是每個學生的平均分數:

SELECT student,
      AVG(score)
   FROM tbl
   GROUP BY student;

引用自:https://dba.stackexchange.com/questions/163693