PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Дизайн на база данни - nullable полета

Една опция, силно нормализирана, е да направите таблиците по-подобни на

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

където записи съществуват само в съответната таблица с известия (потребител/компания/група) за всяко дадено известие.

(Не мисля, че има нещо лошо в външните ключове с възможност за null в ситуация, в която това показва, че външният ключ е незадължителен, но множество външни ключове от подобен тип създават впечатлението за денормализиран дизайн)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. regexp_replace Unicode в PostgreSQL

  2. Вмъкнете стойност на полето за диапазон от дати в таблицата на PostgreSQL чрез JDBC

  3. Календарни таблици в PostgreSQL 9

  4. urlencode само с вградени функции

  5. Тествайте за нула във функция с различни параметри