sql >> Databasteknik >  >> RDS >> PostgreSQL

Databasdesign - nullbara fält

Ett alternativ, mycket normaliserat, är att göra tabellerna mer lika

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
);

där poster endast finns i den relevanta (användare/företag/grupp) aviseringstabell för en given notifikation.

(Jag tycker inte att det är något fel med nullbara främmande nycklar i situationen där det indikerar att den främmande nyckeln är valfri, men flera främmande nycklar av liknande typ ger intrycket av en denormaliserad design)




  1. kolumndatum kan inte kastas automatiskt till typ tidsstämpel med tidszon django/postgres

  2. Konvertera MySQL-skript till H2

  3. Hur kan jag få den fullständiga definitionen (sql) av systemvyer som user_objects?

  4. Hur man hanterar flera objekt med hjälp av Object Explorer Detail Windows i SSMS - SQL Server / TSQL Tutorial Del 22