Reading this article,
and doing a simple test myself, I feel that the database isn't very safe (from data integrity).
I mean, lets take the example in that page:
1 base class and 2 subclasses: base = BillingDetail subclasses = CreditCards, BankAccounts
3 tables. BillingDetail has primary key shared with CreditCards, BankAccounts.
Say from the application, we create a CreditCards entity and save to database. We get a row in BillingDetail + a row with same id in CreditCards.
If we then go to database, and manually create a row in BankAccounts with the same ID, it now is also a BankAccounts entity in the application.
I mean is this behavior.... wrong?
(Not that I am that overly concerned about this, but wouldn't it have been better to insert something like trigger or constraint in database to ensure integrity?)