यह वास्तविक स्थिति पर बहुत निर्भर करता है, लेकिन पहली जगह कॉलम प्रकारों का बिंदु यह निर्धारित करना है कि कौन से मूल्यों की अनुमति है और कौन नहीं हैं। यदि, आपकी समस्या डोमेन में, विशेषता जिसे आप ENUM मान के रूप में स्टोर करने पर विचार कर रहे हैं, निश्चित है, इस अर्थ में कि यह अन्य मानों को संभव नहीं हो सकता है, तो ENUM एक बेहतरीन विकल्प है। इसका एक उदाहरण लिंग होगा: ENUM('male', 'female')
बहुत अच्छा है, क्योंकि तीसरे लिंग को जोड़ने का मौका वास्तव में बहुत कम होगा।
यदि आप उन मूल्यों को संग्रहीत कर रहे हैं जो बदलने की अधिक संभावना रखते हैं, तो आप इसके बजाय अपने डेटा मॉडल को एक-से-एक रिश्ते को सामान्यीकृत करने पर विचार कर सकते हैं।
व्यावहारिक दोष विस्तारशीलता है। आप पूरी तालिका को अपडेट किए बिना सूची में कोई मूल्य नहीं जोड़ सकते हैं। आप ऐतिहासिक होने के लिए मूल्यों को चिह्नित नहीं कर सकते हैं। मूल्यों की सूची सीमित है। यद्यपि आप सूची सुविधा को अपने आवेदन के एमवीसी मॉडल में ले जाने के दौरान दोनों में सर्वश्रेष्ठ हो सकते हैं और कॉलम प्रकार को CHAR होने दें। जब तक प्रदर्शन और संग्रहण आपके आवेदन की कुंजी न हो, तब तक जब मैं केवल अनुप्रयोगों द्वारा डेटाबेस का उपयोग नहीं करता, तो मैं enums का उपयोग करने की अनुशंसा नहीं करता। – Code4R7