[問題] 資料庫存放常數

看板Web_Design作者 (32767)時間10年前 (2015/05/18 23:44), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/1
各位好,最近在開發 Web Application 的時,遇到一些問題,想請教要怎麼做會 比較好。就是我的 Database 中的某些 column 會存放字串,字串內容的變化是 固定的。 舉例來說,我有一個 table 用來記錄每天的課表,像這樣: 科目 星期 [ 數學, 星期一 ] [ 國語, 星期二 ] [...] [...] [ 電腦, 星期四 ] 我想問的是,星期一 到 星期天 這七個字串,應該要怎麼存? 我目前能想出這些方法: 方法一: 直接存原始字串 (就像上面的例子一樣) 方法二: 再開一個 table 預先存放這七個字串,要取用時就用 id 來 join 兩個 table 舉例如下: 科目 星期_id id 星期 [ 數學, 1 ] [ 1, 星期一 ] [ 國語, 2 ] [ 2, 星期二 ] [...] [ 3. 星期三 ] [...] [ ..以此類推.. ] [ 電腦, 4 ] 方法三: 不存在 database 中,直接以常數或 enum 的形式放在程式碼裡 舉例如下:(以 pseudocode 表示) const MONDAY = '1' const TUESDAY = '2' 這時候存資料時直接拿這個常數來用,像這樣: save(數學, MONDAY) // [ 數學, 1 ] (其實這裡也衍生出一個問題,到底是要存放原始文字還是存代號,等到取出來再轉換) 以上就是我的問題,如果有不清楚或覺得怪怪的地方,我再試著說更清楚,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.32.165.51 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1431963857.A.9EB.html

05/19 00:04, , 1F
以搜尋的效率2應該比較好 1的話可讀性比較高
05/19 00:04, 1F

05/19 12:40, , 2F
一和二其實要看狀況而定,不過大多數狀況下2比1好
05/19 12:40, 2F

05/19 12:41, , 3F
至於三的話..我是會建議存到資料庫
05/19 12:41, 3F

05/19 12:41, , 4F
不然你就資料的角度來看,根本就不知道那個1到底是甚麼
05/19 12:41, 4F

05/19 12:42, , 5F
這個資料就變成與你的程式強耦合(也就是你要有這支程式
05/19 12:42, 5F

05/19 12:42, , 6F
才有辦法了解資料的意義) 所以整體來講會推薦2
05/19 12:42, 6F

05/19 16:13, , 7F
喔喔! 看來還是保存在資料庫是比較好的作法,謝謝~
05/19 16:13, 7F

05/19 23:06, , 8F
請參考 資料庫正規化
05/19 23:06, 8F
文章代碼(AID): #1LMWZHdh (Web_Design)