PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thiết kế cơ sở dữ liệu - các trường vô hiệu

Một tùy chọn, được chuẩn hóa cao là làm cho các bảng giống hơn

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

nơi các mục nhập chỉ tồn tại trong bảng thông báo liên quan (người dùng / công ty / nhóm) cho bất kỳ thông báo nhất định nào.

(Tôi không nghĩ rằng có gì sai với các khóa ngoại có thể vô hiệu hóa trong tình huống cho biết rằng khóa ngoại là tùy chọn, nhưng nhiều khóa ngoại cùng loại tạo ra ấn tượng về một thiết kế không chuẩn hóa)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql tham gia 2 bảng

  2. Laravel where điều kiện - truy vấn pgsql

  3. Sự cố ổ cắm PostgreSQL Mountain Lion

  4. Tại sao tôi không thể loại trừ các cột phụ thuộc khỏi `GROUP BY` khi tôi tổng hợp theo một khóa?

  5. Tốc độ cắt bỏ Postgresql