或者試想這樣的情況,你現在正在設計一個API提供使用者上傳資料,雖然第一版API提供了一種型態三個變數用以上傳,但是經過半個月之後,你發現必須要開發第二版API,多新增一個型態含四個變數做處理,而原本的變數,因為前端UI功能增加,必須多增添兩個變數以滿足要求。
一般說來,最直觀的作法,就是將第一版API對應的資料表新增兩個欄位供新功能使用,而過去的所有已輸入資料通通設定為null;而第二版API則另開一個新資料表做儲存,幾乎等於重新開發一個API專屬另一個型態來使用。
但隨著需求的擴增,你的資料表開得越來越多,若開發時只設計一個API入口,那後端程式就必須相對的去維護多個資料庫,又若資料庫程式很先進的使用了O/R Mapping進行實作,那你就會看到堆有著相似性目的,卻只是組成不同的資料庫物件在你的程式裡頭。