Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकल कॉलम में एकाधिक मानों को कैसे स्टोर करें जहां कम स्मृति का उपयोग करें?

यदि किसी उपयोगकर्ता की कई भूमिकाएँ हो सकती हैं, तो संभवतः एक user_role . होना बेहतर है तालिका जो इस जानकारी को संग्रहीत करती है। यह सामान्यीकृत है, और क्वेरी करना बहुत आसान होगा।

एक टेबल जैसे:

user_id | role
--------+-----------------
      1 | Admin
      2 | User
      2 | Admin
      3 | User
      3 | Author

आपको किसी विशेष भूमिका वाले सभी उपयोगकर्ताओं के लिए क्वेरी करने की अनुमति देगा, जैसे SELECT user_id, user.name FROM user_role JOIN user WHERE role='Admin' कॉलम से विवरण प्राप्त करने के लिए स्ट्रिंग पार्सिंग का उपयोग करने के बजाय।

अन्य बातों के अलावा, यह तेज़ होगा, क्योंकि आप कॉलम को ठीक से अनुक्रमित कर सकते हैं और किसी भी समाधान की तुलना में मामूली अधिक स्थान लेंगे जो एक ही कॉलम में एकाधिक मान रखता है - जो कि रिलेशनल डेटाबेस के लिए डिज़ाइन किए गए हैं, इसके विपरीत है।

इसे संग्रहीत नहीं करने का कारण यह है कि यह अक्षम है, क्योंकि DCoder पर टिप्पणी करता है यह उत्तर . यह जांचने के लिए कि क्या उपयोगकर्ता की कोई भूमिका है, उपयोगकर्ता तालिका की प्रत्येक पंक्ति को स्कैन करने की आवश्यकता होगी, और फिर स्ट्रिंग मिलान का उपयोग करके "भूमिकाएं" कॉलम को स्कैन करना होगा - चाहे यह क्रिया कैसे भी उजागर हो, RMDBS की आवश्यकता होगी सामग्री को पार्स करने के लिए स्ट्रिंग ऑपरेशन करें। ये बहुत महंगे ऑपरेशन हैं, और बिल्कुल भी अच्छे डेटाबेस डिज़ाइन नहीं हैं।

अगर आपको जरूरत एक कॉलम रखने के लिए, मैं दृढ़ता से सुझाव दूंगा कि अब आपके पास कोई तकनीकी समस्या नहीं है, बल्कि एक लोग प्रबंधन है . मौजूदा डेटाबेस में अतिरिक्त टेबल जोड़ना जो विकास के अधीन है, मुश्किल नहीं होना चाहिए। अगर यह ऐसा कुछ नहीं है जिसके लिए आप अधिकृत हैं, तो समझाएं कि सही व्यक्ति के लिए अतिरिक्त तालिका की आवश्यकता क्यों है - क्योंकि मुंगिंग एक कॉलम में कई मान खराब हैं, खराब विचार



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रोग्राम के रूप में MySQL में max_connections कैसे सेट करें?

  2. Laravel:जहां से ऑर्डर करें

  3. NameError:mysql में परिवर्तन सेट करने के बाद नाम '_mysql' परिभाषित नहीं किया गया है

  4. MySQL में एक कॉलम का नाम बदलें

  5. html को mysql डेटाबेस में कैसे स्टोर करें?