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

đa hình cho các ràng buộc NGOẠI KHÓA

Đây là mẫu tôi đang sử dụng.

CREATE TABLE room (
    room_id serial primary key,
    room_type VARCHAR not null,

    CHECK CONSTRAINT room_type in ("standard_room","family_room"),
    UNIQUE (room_id, room_type)
);

CREATE_TABLE standard_room (
    room_id integer primary key,
    room_type VARCHAR not null default "standard_room",

    FOREIGN KEY (room_id, room_type) REFERENCES room (room_id, room_type),
    CHECK CONSTRAINT room_type  = "standard_room"
);
CREATE_TABLE family_room (
    room_id integer primary key,
    room_type VARCHAR not null default "family_room",

    FOREIGN KEY (room_id, room_type) REFERENCES room (room_id, room_type),
    CHECK CONSTRAINT room_type  = "family_room"
);

Nghĩa là, 'lớp con' trỏ đến lớp siêu, bằng cột mô tả kiểu (sao cho lớp được trỏ đến lớp cơ sở là đúng kiểu và khóa chính của lớp siêu đó giống với các lớp con .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chèn nhiều hàng bằng một hàm trong PostgreSQL

  2. Cập nhật hàng loạt bảng đã tham gia với ActiveRecord update_all và Rails 4

  3. Làm cách nào để tạo kết quả của các truy vấn SQL với LIMIT khác nhau trong mỗi truy vấn?

  4. Sự cố với BẢNG ALTER Postgres

  5. Làm thế nào để nhận được sự khác biệt của ngày / tháng / năm (ngày thứ hai) giữa hai ngày?