On Sun, 2004-08-29 at 18:07, Matthew M Davis wrote:
> On Sunday 29 August at 12:34pm, Oliver Elphick had this to say:
> 
> > Primary and foreign key constraints are not inherited.  This is a defect
> > in the current system.
> 
> It almost seems like a FEATURE to me, since it creates a different and
> easy way to create one-to-many relationships.  But I didn't use it,
> since the documentation says this is a Bad Thing that may be fixed
> some day.  If the child table inherits the primary key constraint from
> the parent, why not just put it in the same table?

If you understand inheritance from the point of view of object-oriented
programming, you want to be able to have a hierarchy where the top level
has characteristics which are extended further down.

So all mammals are animals and all dogs are mammals, and all three
groups share common characteristics which are properties of the parent
class.  But mammals have characteristics which are not applicable to all
animals and so are not appropriate to the parent class; similarly, dogs
have properties which are not common to all mammals. 

Now one particular animal is either a mammal or it is not, and if it is,
it is either a dog or it is not.  What it is governs which class it
belongs to in the hierarchy.  Nevertheless, I may want to know about the
characteristics of animals without enquiring into the particular
characteristics of mammals; in that case an enquiry on the top-level of
the hierarchy is appropriate and will gather all information about all
animals.  If I want to make a further enquiry about properties peculiar
to mammals, it is appropriate to start my enquiry at that level in the
hierarchy.  However a particular animal can only be in one particular
class, therefore it would be preferable for the primary key to extend
over the whole hierarchy.

-- 
Oliver Elphick                                          [EMAIL PROTECTED]
Isle of Wight                              http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA  92C8 39E7 280E 3631 3F0E  1EC0 5664 7A2F A543 10EA
                 ========================================
     "Preach the word; be instant in season, out of season; 
      reprove, rebuke, exhort with all longsuffering and 
      doctrine."          II Timothy 4:2 


---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faqs/FAQ.html

Reply via email to