2017-07-30 2 views
0

Wenn ich eine ENUM:Erweiterung/Vererben Aufzählungen in PostgreSQL

CREATE TYPE title AS ENUM ('Mr','Mrs', ...etc); 

Ich mag eine zweite Aufzählungs erstellen, oder erweitern die bestehende Enum, so dass sie die gleichen Daten enthalten, aber mit zusätzlichen Optionen, sind nur für bestimmte Klassen zulässig (im Sinne eines Polymorphismus). Im Wesentlichen:

('Mr', 'Mrs', 'Dr') 

Würde für eine bestimmte Klasse arbeitet Professional von Person abgeleitet, während Layman (auch von Person abgeleitet) nach wie vor nur Zugriff auf den ursprünglichen Minimalsatz hat. title ist ein Attribut von Person

Ich bin neu in objektrelationalen Datenbanken, was ist der sauberste Weg, dies in PostgreSQL zu tun?

Antwort

0

Es gibt keine Möglichkeit, dies als tatsächliche enum in PostgreSQL zu tun.

Dies wäre besser geeignet für eine Nachschlagetabelle, wo Sie eine zusätzliche Spalte für Bedingungen haben können. Eine Titelliste ist sowieso ein schlechter Gebrauch für ein enum, da es unvermeidlich ist, dass du regelmäßig neue Titel hinzufügst, und das Set ist groß.

Ehrlich, für PostgreSQL verwerfen Sie den "Objekt-" Teil. Konzentriere dich auf das "relationale".