If you have an interface, such as Notifiable, and you want to represent that in your database, how would you do it? Assume you have 10 entities that should be Notifiable, but each are in their separate inheritance hierarchies.
How would you let each one of those 10 entities represent their association to a Notifiable entity that has its own characteristics and relationships?
Seems like a very interesting problem to me, but I can't think of any good (normalized, strong foreign keys) solution.
An interface (Java) can be thought of as a superclass for the purposes of this discussion:
A Car inherits from Vehicle only, but can also implement the interfaces Drivable, Turnable, Parkable, each of which can have its own properties.
I'm essentially talking about multiple inheritance.
Yes, what you suggest solves most of the problem, but (I should've combined it with my other question on discriminators) wouldn't each interface (i.e. superentity) table need discriminators for each of the 10 entities?
And that'd create problems when adding a new entity that implements the interface.
And there's the fact that multiple inheritance in data modeling is apparently an 'illegal' construct...