Lets suppose I have a scenario with the following model: An Animal table which represents any animal, a Dog table and a Bird table, each one with a 1:1 relationship with the Animal table.
Animal
INTEGER id (PK)
STRING name
Bird
INTEGER id (PK FK referencing `Animal.id`)
Dog
INTEGER id (PK FK referencing `Animal.id`)
(I'm giving only the keys just to be clear)
How can I guarantee that a given row in the Animal table will have JUST one referenced row in either the Dog or the Bird table? The model itself allows it...
An animal can't be a Dog and a Bird at the same time (not in mythology but that's not the case :P)
It would be better if this could be done just by playing with the model, without triggers...
Any tip would be appreciated :)