2010/05/30

[MySQL] Using XML to simulate field changeable data

資料欄位的不確定性一向是資料庫設計時的痛,但也是在評估架構大小時極為有趣的部份。雖然軟體界的先驅,孜孜不倦地要求著我們一定要先做好需求分析,之後再進行架構設計與程式的實作,然而我們永遠都避免不了程式上線後,使用者提出新增或調整輸入內容的需求,而且更糟的是,使用者甚至願意捧著一大筆錢請你實踐這個功能,讓你老闆無法為公司拒絕這樣誘人的條件。

或者試想這樣的情況,你現在正在設計一個API提供使用者上傳資料,雖然第一版API提供了一種型態三個變數用以上傳,但是經過半個月之後,你發現必須要開發第二版API,多新增一個型態含四個變數做處理,而原本的變數,因為前端UI功能增加,必須多增添兩個變數以滿足要求。

一般說來,最直觀的作法,就是將第一版API對應的資料表新增兩個欄位供新功能使用,而過去的所有已輸入資料通通設定為null;而第二版API則另開一個新資料表做儲存,幾乎等於重新開發一個API專屬另一個型態來使用。

但隨著需求的擴增,你的資料表開得越來越多,若開發時只設計一個API入口,那後端程式就必須相對的去維護多個資料庫,又若資料庫程式很先進的使用了O/R Mapping進行實作,那你就會看到堆有著相似性目的,卻只是組成不同的資料庫物件在你的程式裡頭。

[遊記] 香港三天兩夜

在五月初起意找時間離開台灣去流浪,連續三年無視了公司的員工旅遊補助,今年終於給了自己動力離開台灣三天兩夜出去走走,即使目的地只是航程不到兩小時的香港。 決定了日期,向公司請好了休假,接下來就是要決定交通住宿,由於想要自己決定出發以及回來時間,方便起見捨棄了可能有特定優惠的機...