这个问题可能有一个标准做法的简单答案,或者因为一个简单的原因无法完成而没有答案,或者只是一个有趣的思考练习。我目前坐在最后一个选项上,但希望第一个......
假设我想在我的数据模型中创建实体的“组”或“类”。通常,我会使用这样的超类型表:
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 替换等。但是数据模型中是否可以进行多重继承?
我主要是 C# 开发人员,所以我开始考虑接口。如果我想公开“实现”IDrivable
和/或ITowable
等的表怎么办。这样的事情可能吗?有没有人做过类似的事情?