在實際的程序開發中,我們通常在後臺程序設計的時候,用了大量抽象的東西,接口,抽象類等等,也用了繼承和實現來快速擴展子類,這些都是爲了讓程序開發更加高效,模塊化,易於分工協作等等;但是在數據庫端如何實現這種繼承關係呢?特別是針對於業務特別複雜的模型的時候,數據庫的設計更加重要;
通常有三種方法來實現:
1 建立外鍵表,將所有子表共有的用於實現某一種功能的字段封裝起來,比如將描述數據權限的字段封裝起來;這種做法雖然簡化了子表的數據列,但是卻增加了後期使用過程中的查詢消耗;
2 子表各自擁有記錄描述自己的公共字段:比如每個子表都有結構相同的描述數據權限的字段;這種做法是最基本的,因爲是最耗時的,特別是當父類業務進行變化的時候,子表需要或者修改添加相同的字段;
3 將所有的子表記錄在一張表結構中,這樣雖然,降低了查詢消耗,但是也浪費了子類對象的大量字段,因爲並不是每一個子類都會用到所有字段;
具體選擇那種方法,是根據實際業務進行選擇和調整。