[問題] SQL 資料表設計的效率問題
最近在做的東西遇到了一些瓶頸, 想請問大家資料庫的table該怎麼設計會比較有效率:
case1:
有n個學生, 有m種課程
學生 課程
1 1(數學)
2 2(國文)
3 .
4 .
. .
. m
.
n
應用是要知道每個學生選了哪些課程
table要怎麼設計, 效率會比較好呢?
我目前的做法是:
學生table:
-----student-----
| ID | name | my_lessons |
| 1 | John | 1;3;6 |
| 2 | Jack | 4;5;6 |
| . | . | . |
| . | . | . |
| n | . | . |
課程table:
----lession------
| lesson_ID | lesson_name |
| 1 | 國文 |
| 2 | 數學 |
| . | . |
| . | . |
| m | . |
要拿到每個學生在上的課程, SQL語法:
$list = student's my_lessons
$result = mysql_query("SELECT * FROM `lesson` WHERE `lesson_ID` IN ($list)");
這種多對多的table一但資料庫太大, 效率就會很差...
不知道版上大大們可否給小的一些建議
case2.
每一堂課的留言版要怎麼設計會比較有效率呢
課程table:
----lession------
| lesson_ID | lesson_name |
| 1 | 10/25 國文 |
| 2 | 10/27 數學 |
| . | 10/30 國文 |
| . | . |
| . | . |
留言內容table:
----message------
| message_ID | lesson_ID | message |
| 1 | 1 | 今天國文好難 |
| 2 | 1 | 國文真是我的罩門 |
| 3 | 2 | 我喜歡數學 |
| . | . | . |
| . | . | . |
要拿到每堂課程的留言, SQL語法:
$lession_ID = lession's lesson_ID
mysql_query("SELECT * FROM `message` WHERE `lesson_ID` = '$lession_ID'");
然後每堂課都要執行一次..去撈所有的message table
這樣會不會太暴力? 謝謝..^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.65.104
推
12/25 17:21, , 1F
12/25 17:21, 1F
→
12/25 17:22, , 2F
12/25 17:22, 2F
→
12/25 17:22, , 3F
12/25 17:22, 3F
→
12/25 17:22, , 4F
12/25 17:22, 4F
→
12/25 17:23, , 5F
12/25 17:23, 5F
→
12/25 17:23, , 6F
12/25 17:23, 6F
推
12/25 17:35, , 7F
12/25 17:35, 7F
→
12/25 19:18, , 8F
12/25 19:18, 8F
→
12/25 19:18, , 9F
12/25 19:18, 9F
→
12/25 23:02, , 10F
12/25 23:02, 10F
推
12/29 00:05, , 11F
12/29 00:05, 11F
推
12/29 00:07, , 12F
12/29 00:07, 12F
→
12/29 00:08, , 13F
12/29 00:08, 13F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章