PostgreSQL 8.3 से आगे ENUM का समर्थन करता है। पुराने संस्करणों के लिए, आप उपयोग कर सकते हैं:
आप कुछ इस तरह कर रही द्वारा एक Enum अनुकरण कर सकते हैं:
CREATE TABLE persons (
person_id int not null primary key,
favourite_colour varchar(255) NOT NULL,
CHECK (favourite_colour IN ('red', 'blue', 'yellow', 'purple'))
);
तुम भी हो सकता है:
CREATE TABLE colours (
colour_id int not null primary key,
colour varchar(255) not null
)
CREATE TABLE persons (
person_id int not null primary key,
favourite_colour_id integer NOT NULL references colours(colour_id),
);
जो आप जोड़ना होता है एक में शामिल होने जब आपको पसंदीदा रंग पता चल जाता है, लेकिन इसका लाभ यह है कि आप कलर टेबल में प्रवेश जोड़कर रंग जोड़ सकते हैं, और यह नहीं कि आपको प्रत्येक बार स्कीमा को बदलने की आवश्यकता नहीं होगी। आप एचटीएमएल कोड, या आरवीबी मानों जैसे रंग में विशेषता भी जोड़ सकते हैं।
आप अपना खुद का प्रकार भी बना सकते हैं जो एक enum करता है, लेकिन मुझे नहीं लगता कि यह वर्चर और CHECK
से कहीं अधिक तेज होगा।
PostgreSQL संस्करण 8.3 के बाद से ENUM का समर्थन करता है (मेरा उत्तर देखें)। – bortzmeyer
धन्यवाद, इसे प्रतिबिंबित करने के लिए मेरा उत्तर संपादित किया। – mat