Closed RexYuan closed 8 years ago
首先兩個考量到資料獲取(scraping)時的參考:
我目前想到的理想情況: 四個 table 是 course, department, user, vote,先做前兩個。 首先是 course,它儲存了每一堂課的資料,我認為他應該有的 columns:
/
作為區分;但如果要重新設計,勢必不能用這個方法而在 department 中我認為目前的架構還可以:
abbr
。這代表了該系所開設的課程在課程代碼中的簡稱,例如資工系的線性代數是 CSU0016
,而他的系所簡稱便是 CSU
Edit:
abbr
不一定需要在 scraping 時考量,大幅簡化通識課程的資料關於 course 裡的 10.,有個潛在問題是,通識課程並非同一個分類的通識就都有同樣的系所簡稱或系所代碼,見 SQL dump content 中 id 在 7035 - 7044 之間的一般通識課程:
id | department | chdepartment | code | chname | teacher |
---|---|---|---|---|---|
7035 | 0AU | 一般通識 | 0AUG418 | 電影英文 | 林秀玲 |
7036 | 0AU | 一般通識 | 0AUG426 | 物理與生活 | 張嘉泓 |
7037 | 0HU | 一般通識 | 0HUG223 | 禪與人生 | 王開府 |
7038 | 0HU | 一般通識 | 0HUG502 | 法語(一) | 楊慧娟 |
7040 | 0HU | 一般通識 | 0HUG640 | 武士道文化與批判 | 張崑將 |
7041 | 0NU | 一般通識 | 0NUG246 | 生理心理學 | 呂國棟 |
7042 | 0SU | 一般通識 | 0SUG208 | 臺灣的政治發展與變遷 | 范世平 |
7043 | 0SU | 一般通識 | 0SUG523 | 通識教育講座 | 黃玫瑄 |
7044 | 0SU | 一般通識 | 0SUG514 | 博物館探索 | 黃玫瑄 |
Edit:
由於新的 scraping 方式,abbr
在 scraping 時已不需要。但這個問題依然存在,因為如果要在 course 中不儲存系所代碼與系所名稱,而已指向 department 的 id 儲存,這邊會遇到不確定性。
這是草案,細節部分待討論和確定 TABLE department 儲存所有系所資訊
名稱 | 型別 | 意義 | 範例 | 備註 |
---|---|---|---|---|
dept_id | u_INT | PRIMARY KEY | 1/53/4523 ... | |
abbr | CHAR(3) | 開課代碼前綴 | HED(衛教博)/EDC(教育大碩)/PCM(心輔碩)/CSU(資工系)/02U(其中一種通識) ... | |
code | CHAR(4) | 系所代碼 | 9UAA(校際學士班(臺大))/SU47(資工系)/E(教育學院)/CU(共同科) ... | |
chn_name | NVARCHAR() | 系所中文名稱 | 資工系/教育輔/理學院/生物多樣學位學程 ... | |
eng_name | VARCHAR() | 系所英文名稱 | Department of Computer Science and Information Engineering (Undergraduate) !ADDMORE |
TABLE course 儲存所有課程資訊
名稱 | 型別 | 意義 | 範例 | 備註 |
---|---|---|---|---|
course_id | u_INT | PRIMARY KEY | 1/32/793 | |
serial_no | u_SMALLINT | 開課序號 | 3025 !BEGINHERE | |
course_code | CHAR(7) | 開課代碼 | CSU0001 | |
acadmYear | u_TINYINT | 學年 | 104 | |
acadmTerm | u_TINYINT | 學期 | 1 | |
chn_name | NVARCHAR() | 課程中文名稱 | 程式設計(一) | |
eng_name | VARCHAR() | 課程英文名稱 | Computer Programming (I) | |
teacher | NVARCHAR() | 教師中文姓名 | 蔣宗哲 | 可能有多名老師教授同一堂課。 |
tname | VARCHAR() | 教師英文姓名 | CHIANG, Tsung-Che | 同上。 |
course_group | CHAR(1) | 組別 | ||
classes | CHAR(1) | 開課班級代碼 | 見Scraper Guide之classCode | |
course_kind | CHAR(1) | 全/半學期 | H | 值為H/F |
credit | FLOAT() | 學分數 | 3.0 | 是否有小數之學分數? |
dept_code | CHAR(4) | 開課系所代碼 | SU47 | |
dept_group | CHAR() | 開課組別 | ||
eng_teach | BOOL | 全英語授課 | F | |
form_s | CHAR(1) | 開課年級 | 1 | |
gender_restrict | CHAR(1) | 性別限制 | N | 值為N/M/F |
moocs_teach | BOOL | MOOCs | F | |
option_code | CHAR(1) | 必/選修 | R | 值為R/S |
restrict | NVARCHAR() | 擋修條件 | 是否有英文? | |
rt | BOOL | 遠距授課 | F | |
selfTeachName | NVARCHAR() | 正課/實驗親授 | 未見使用 | |
chn_location | NVARCHAR() | 中文上課地點 | 公館 理圖807 | 或許可建立教室表? |
eng_location | VARCHAR() | 英文上課地點 | 同上 | |
time | VARCHAR() | 上課時間 | 三 8-9, 五 7 | parse日期以及節次 |
status | BOOL | 是否停開 | F | |
comment | NVARCHAR() | 中文註解 | ||
eng_comment | VARCHAR() | 英文註解 | ||
counter_exceptAuth | u_TINYINT | 修課總人數 | 52 | |
authorize_p | u_TINYINT | 授權碼名額 | 20 | |
authorize_r | FLOAT() | 授權碼比例 | 0.40 | |
authorize_using | TINYINT | 授權碼使用人數 | -52 | |
limit | u_TINYINT | 台大聯盟限修總人數 | 0 | |
limit_count_h | u_TINYINT | 限修人數 | 50 |
TABLE course_record 以課程代碼查詢各學期開課記錄用,映射至course之PRIMARY KEY集合。
名稱 | 型別 | 意義 | 範例 | 備註 |
---|---|---|---|---|
id | INT | PRIMARY KEY | 1 | |
course_code | CHAR(7) | 課程代碼 | CSU0001 | |
record | TEXT | 開課紀錄 | 1 |
可擴充方面:
修了一下typo, format 跟加上一些unsigned 與將 BIT 改為 BOOL
參考:MySQL Doc 11.1 Data Type Overview
// TODO: 加上範例與計算各值 length
另外可考慮將教師或地點或時間分開建 table 以利搜尋
新增範例,更改unsigned標記方式,修正少許錯誤及更改部分欄位型別。
考慮:擴增 user, vote, teacher, 重建record 以下是 Facebook API 可以提供的資訊:
}
"id": "10203739867764562",
"email": "r1218r1218\u0040gmail.com",
"first_name": "Chih-cheng",
"gender": "male",
"last_name": "Yuan",
"link": "https://www.facebook.com/app_scoped_user_id/10203739867764562/",
"locale": "en_US",
"name": "Chih-cheng Yuan"
}
From Graph API Reference > User:
考量到 scraping 舊方法能直接在課綱頁面做蒐集,以下是可增加的資料:
資料 | 範例 |
---|---|
每週授課時數 | 正課時數: 2 小時 |
開課系級 | 藝術與美感 |
課程簡介 | 歌劇發展雖僅有四百多年,但已成為全球公認的最高舞台藝術,並對所有的表演藝術領域有著直接而全面的影響。多位歌劇大師的經典作品裡,多面向地反映創作者的時代背景、個人人生觀與藝術觀,融合在創作者的音樂語法裡。這些經典作品在不同的時代被演出時,透過不同的詮釋者,又呈現出不同的樣貌。本課程依開課學年度,選取一位歌劇大師之經典作品,引導學生直接與世界歌劇舞台接軌,並就其作品,細細剖析歌劇相關之藝術美感,如劇本文學、音樂語言、舞台設計、肢體走位、導演理念等等,帶領學生直接接觸最高總體藝術的不同面向,培養個人的藝術品味、美感與判斷力。 |
I'm closing this issue because the groundwork has been done. The rest of the minor enhancement or adjustment will be done at #25 because of the emerging potentials.
這是目前第一版的 SQL structure dump
目標是解決 #16 和 #18,解決同堂課不同教授問題,更清楚的區分不同屬性的資料(使用者、系所、課程...),和讓 scraping 的動作更容易。潛在:讓 #10 推薦系統能夠運作。 另外,這是包含 content 的 SQL dump。