这个问题可能有一个简单的答案,这是一个标准的做法,或者没有答案,因为它不能做简单的原因,或者只是一个有趣的思考练习。我目前正在坐在最后一个选项,但希望第一个...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