這個問題可能有一個簡單的答案,這是一個標準的做法,或者沒有答案,因爲它不能做簡單的原因,或者只是一個有趣的思考練習。我目前正在坐在最後一個選項,但希望第一個...Supertyping表 - 是否可以實現多重繼承?
比方說,我想要在我的數據模型中創建一個「組」或「類」的實體。一般情況下,我會使用一個超表是這樣的:
DrivableEntity
----------
ID (PK, auto-increment)
Type (int or otherwise some kind of enum)
Car
----------
ID (PK, FK to DrivableEntity)
(car-specific fields)
Bike
----------
ID (PK, FK to DrivableEntity)
(bike-specific fields)
然後,我的刀片可能會經過哪些外部看起來像每個子表正常的CRUD的程序,但在內部插入到DrivableEntity
,然後使用範圍身份插入到預定的表格中。
作爲程序員而不是數據建模師,這讓我想到了對象繼承。對於直接繼承來說,這很好。常見的數據/任務可以抽象到一個級別,Liskov Substitution可以維護等等。但是,在數據模型中可以實現多重繼承嗎?
我主要是C#開發人員,所以我開始考慮接口。如果我想暴露「實施」IDrivable
和/或ITowable
等的表格是什麼情況?有沒有人做過類似的事情?
絕對不像我期待的那樣優雅,但在邏輯上它確實適合。我認爲我真正想要做的僅僅是在像SQL Server這樣的關係模型中不可行。不過,這種方法對於該項目仍然可能有用。謝謝! – David 2010-11-06 12:56:00