====== Nasleđivanje tabela u PostgreSQL bazi podataka ======
PostgreSQL ima mehanizam za nasleđivanje između tabela ([[https://www.postgresql.org/docs/10/ddl-inherit.html|https://www.postgresql.org/docs/10/ddl-inherit.html]])
Primer roditeljske tabele cities i deteta capitals:
CREATE TABLE cities (
name text,
population float,
altitude int -- in feet
);
CREATE TABLE capitals (
state char(2)
) INHERITS (cities);
* SELECT iz roditeljske table uvek vraća i slogove iz dece osim ako se ispred imena roditelja ne navede ključna reč ONLY npr. SELECT * FROM ONLY cities
* ALTER roditeljske tabele (dodavanje/brisanje kolone) se prenosi i na decu, a obratno ne
* INSERT u roditeljsku tabelu se ne prenosi u decu, a ni obratno
* UPDATE zajedničke kolone u roditeljskoj tabeli se prenosi na decu, obratno ne
Dokumentacija PostgreSQLa kaže da postoji 1 ograničenje tj. mana u konceptu nasleđivanja tabela, a to je:
A serious limitation of the inheritance feature is that indexes (including unique constraints) and foreign key constraints only apply to single tables, not to their inheritance children.