Bạn đã không cho chúng tôi làm việc nhiều ở đây, "cái bàn khác" nói về cái gì? Bây giờ hãy giả sử đó là Ưu tiên tùy chỉnh.
Để có thể đặt khóa ngoại trên nhiều loại, bạn cần sử dụng Kế thừa bảng . Sẽ có một bảng chính và cả hai loại "kế thừa" từ nó, sử dụng cùng một trường khóa chính.
Có một vài loại kế thừa bảng. Kế thừa bảng đơn sử dụng null, nhưng đơn giản hơn nhiều. Kế thừa bảng lớp được chuẩn hóa, nhưng là một nỗi đau.
PRIORITY
id
type {generic, custom}
PRIORITY_GENERIC
id pk fk PRIORITY
name
PRIORITY_CUSTOM
id pk fk PRIORITY
name
created_at timestamp
USER
id pk
name
priority_id fk PRIORITY
insert into priority values
(1, 'Generic'),
(2, 'Generic'),
(3, 'Generic'),
(4, 'Custom');
insert into priority_generic values
(1, 'Low'),
(2, 'Medium'),
(3, 'High');
insert into priority_custom values
(4, 'Crazy Super High', current_timestamp);
insert into user values (1, 'neil', 3);
insert into user values (2, 'chris', 4);