Sie haben uns nicht viel gegeben, um hier zu arbeiten. Worum geht es in der "anderen Tabelle"? Nehmen wir an, es ist vorerst eine benutzerdefinierte Priorität.
Um einen Fremdschlüssel für mehrere Typen festlegen zu können, müssen Sie die Tabellenvererbung verwenden . Es wird eine Mastertabelle geben, und beide Typen "erben" von ihr unter Verwendung desselben Primärschlüsselfelds.
Es gibt einige Arten der Tabellenvererbung. Single Table Inheritance verwendet Nullen, ist jedoch weitaus einfacher. Die Vererbung in der Klassentabelle ist normalisiert, aber eher schmerzhaft.
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);