ब्लड टाइप (A+, A-, B+, B-, AB+, AB-, O+, O-) संग्रहीत करने के लिए दो मुख्य विकल्प हैं:
विकल्प 1: VARCHAR(3)
mysql> CREATE TABLE DemoTable1855 (
BloodType VARCHAR(3)
);
लाभ: सरल, लचीला, कोई सख्त सूची नहीं।
विकल्प 2: ENUM (अनुशंसित)
mysql> CREATE TABLE DemoTable1855 (
BloodType ENUM('A+','A-','B+','B-','AB+','AB-','O+','O-')
);
लाभ:
- केवल वैध मान अनुमत (डेटा अखंडता)।
- संग्रहण कुशल: 1 बाइट (255 मान तक)।
- सॉर्टिंग परिभाषित क्रम में होती है।
INSERTपर अमान्य मान अस्वीकार (सख्त मोड में त्रुटि)।
डेटा डालें
mysql> INSERT INTO DemoTable1855 VALUES('A+'),('A-'),('B+'),('B-'),('AB+');
आउटपुट
+-----------+ | BloodType | +-----------+ | A+ | | A- | | B+ | | B- | | AB+ | +-----------+
तुलना
| विशेषता | VARCHAR(3) | ENUM |
|---|---|---|
| संग्रहण | 3-4 बाइट्स | 1 बाइट |
| मान्यता | कोई नहीं | सख्त |
| लचीलापन | उच्च | निश्चित सूची |
| सॉर्ट क्रम | लेक्सिकोग्राफिक | परिभाषा क्रम |
| नए मान जोड़ना | आसान | ALTER TABLE आवश्यक |
सिफारिश
ज्ञात, निश्चित सेट (ब्लड टाइप, स्टेटस, श्रेणी) के लिए ENUM बेहतर है। खुले/बदलते मानों के लिए VARCHAR या अलग लुकअप टेबल उपयोग करें।