sql >> Database >  >> RDS >> PostgreSQL

Databaseontwerp - velden met nulling

Een optie, sterk genormaliseerd, is om de tabellen meer op

. te laten lijken
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
);

waar vermeldingen alleen bestaan ​​in de relevante (gebruiker/bedrijf/groep)meldingentabel voor een bepaalde melding.

(Ik denk niet dat er iets mis is met nullable externe sleutels in de situatie waarin dat aangeeft dat de externe sleutel optioneel is, maar meerdere externe sleutels van hetzelfde type wekken wel de indruk van een gedenormaliseerd ontwerp)




  1. Logroteren om bestanden met datumstempel op te schonen

  2. Duplicaten verwijderen in postgre

  3. MySQL-vergelijking met null-waarde

  4. Wijziging Data Capture (CDC)-retentieperiode wijzigen in SQL Server - SQL Server-zelfstudie