PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como você garante que os valores de uma tabela de log correspondam a objetos em outras tabelas?


Você precisa de uma entity tabela:
create table entity (
    entity_id serial primary key,
    entity_type text check (entity_type in ('individual','organization'))
)
create table individual (
    ind_id integer primary key references entity (entity_id), 
    age integer, name varchar
);
create table organisation (
    org_id integer primary key references entity (entity_id), 
    city varchar, name varchar
);
create TABLE log_table (
    log_id integer primary key, 
    entity_id integer references entity (entity_id), 
    information json, log_date date
);