इसके लिए सामान्य दृष्टिकोण हैं:
- EAV
- hstore
- एक्सएमएल
- JSON
देखें:
- डेटाबेस डिज़ाइन - क्या मुझे JSON/XML के रूप में सभी डेटा के साथ 30 कॉलम या 1 कॉलम का उपयोग करना चाहिए ?
- https://dba.stackexchange.com/q/27057/7788
संपूर्ण "अन्य उपयोगकर्ताओं के लिए कॉलम उपलब्ध कराएं" चीज़ के लिए आपको बस एक "कस्टम कुंजियाँ" तालिका रखने की आवश्यकता होती है जिसे आप तब जोड़ते हैं जब कोई उपयोगकर्ता पहले अप्रयुक्त कुंजी को परिभाषित करता है।
डायनेमिक डीडीएल के साथ कॉलम जोड़ना पहली बार में उचित लगता है, लेकिन इसकी सीमाएं हैं कि आप कितने कॉलम स्टोर कर सकते हैं और एक पंक्ति कितनी "चौड़ी" हो सकती है। जब आप अधिक कॉलम जोड़ते हैं तो तालिका को स्कैन करने का प्रदर्शन खराब हो जाता है, हालांकि "विरल" कॉलम जो अधिकतर शून्य होते हैं, अपेक्षाकृत सस्ते होते हैं। एक कॉलम जोड़ने के लिए एक विशेष लॉक की आवश्यकता होती है, कुछ ऐसा जो व्यस्त सिस्टम पर आने में समय ले सकता है, हालांकि कॉलम को जोड़ना बहुत तेज़ है यदि इसे NOT NULL DEFAULT ...
. यह पहली बार में काफी अच्छा काम करेगा, लेकिन मुझे संदेह है कि आप इसे बाद में पछताएंगे।