sql >> Database teknologi >  >> RDS >> PostgreSQL

Databasedesign - nullbare felter

En mulighed, meget normaliseret, er at gøre tabellerne mere ens

create table notifications( 
    notification_id serial primary key, 
    date_created timestamp not null default now(), 
    title_id text not null, 
    message_id text not null, 
    icon text not null default 'logo' 
); 

create table usernotifications
(
    notification_id integer references notifications,
    user_id integer references users
);

create table groupnotifications
(
    notification_id integer references notifications,
    group_id integer references groups
);

create table companynotifications
(
    notification_id integer references notifications,
    company_id integer references companies
);

hvor poster kun findes i den relevante (bruger/virksomhed/gruppe) meddelelsestabel for en given meddelelse.

(Jeg tror ikke, der er noget galt med nullable fremmednøgler i den situation, hvor det indikerer, at fremmednøglen er valgfri, men flere fremmednøgler af lignende type giver indtryk af et denormaliseret design)




  1. Array i IN() klausul oracle PLSQL

  2. 5 ubesværede tips til brug af SQL UPDATE-erklæring med JOIN

  3. Hvorfor returnerer min forespørgsel langt til mange resultater?

  4. PHP multiple object funktionskald