看板 AndroidDev 關於我們 聯絡資訊
※ 引述《xfighter (xfighter)》之銘言: : 最近在做的東西遇到了一些瓶頸, 想請問大家資料庫的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 : 這樣會不會太暴力? 謝謝..^^ : : 這其實已經不算是Android的範圍了 我不確定效率如何,請自己 explain 一下。 回頭看了一下我猜還有科目這個東西 學生students student_id PK name ... 科目subjects subject_id PK name 課程lessons lesson_id PK subject_id time ... 學生選課schedules student_id PK lesson_id PK ... 訊息messages message_id PK lesson_id student_id content created_time ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.82.103 ※ 編輯: lovelycateye 來自: 219.85.82.103 (12/25 23:44)