मैं शायद ही कभी जंगली में उपयोग की जाने वाली ईएनएम डेटाटाइप देखता हूं; एक डेवलपर लगभग हमेशा सिर्फ एक माध्यमिक तालिका कि इस तरह दिखता है का उपयोग करता है:एसक्यूएल: एक ईएनएन बनाम एक से अधिक रिश्ते बनाम लाभ?
CREATE TABLE officer_ranks (
id int PRIMARY KEY
,title varchar NOT NULL UNIQUE);
INSERT INTO ranks VALUES (1,'2LT'),(2,'1LT'),(3,'CPT'),(4,'MAJ'),(5,'LTC'),(6,'COL'),(7,'BG'),(8,'MG'),(9,'LTG'),(10,'GEN');
CREATE TABLE officers (
solider_name varchar NOT NULL
,rank int NOT NULL REFERENCES officer_ranks(id) ON DELETE RESTRICT
,serial_num varchar PRIMARY KEY);
लेकिन एक ही बात यह भी एक उपयोगकर्ता-निर्धारित प्रकार/enum का उपयोग कर दिखाया जा सकता है:
CREATE TYPE officer_rank AS ENUM ('2LT', '1LT','CPT','MAJ','LTC','COL','BG','MG','LTG','GEN');
CREATE TABLE officers (
solider_name varchar NOT NULL
,rank officer_rank NOT NULL
,serial_num varchar PRIMARY KEY);
(PostgreSQL का उपयोग कर उदाहरण से पता चला , लेकिन अन्य आरडीबीएमएस के समान वाक्यविन्यास हैं)
ईएनएन का उपयोग करने के लिए मुझे सबसे बड़ा नुकसान यह है कि किसी एप्लिकेशन के भीतर से अपडेट करना अधिक कठिन होता है। और यह एक अनुभवहीन डेवलपर को भी भ्रमित कर सकता है जिसका उपयोग एसक्यूएल डीबी का उपयोग थोड़ा बाल्टी के रूप में करने के लिए किया जाता है।
मान लीजिए कि जानकारी अधिक स्थिर है (सप्ताह के नाम, महीने के नाम, अमेरिकी सेना रैंक इत्यादि) क्या ईएनएन का उपयोग करने का कोई फायदा है?
डुप्लिकेट: http://stackoverflow.com/questions/2318123/postgresql-enum-what-are-the-advantages-and-disadvantages –