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

उपयोगकर्ता को अपने डेटाबेस में ऑन-द-फ्लाई कॉलम जोड़ने की अनुमति देने का सबसे अच्छा तरीका क्या है?

क्या यह एक परम आवश्यकता है कि वे तालिका में कॉलम जोड़ें , या सिर्फ यह कि वे स्टोर करने के लिए अतिरिक्त फ़ील्ड निर्दिष्ट करने में सक्षम हैं? मैं दृढ़ता से सुझाव दूंगा कि आप अंतिम-उपयोगकर्ता (व्यवस्थापकों को अंतिम-उपयोगकर्ता के रूप में गिना जाता है) को स्कीमा परिवर्तन करने की अनुमति देने के बजाय Entity-Attribute-Value जैसी किसी चीज़ पर विचार करें।

इस तरह के कुछ के लिए, आपके पास अपने कस्टम फ़ील्ड को परिभाषित करने के लिए एक टेबल होगी, फिर उपयोगकर्ता को संपर्क के लिए कस्टम फ़ील्ड के लिए मान निर्दिष्ट करने की अनुमति देने के लिए कई-से-अनेक एसोसिएशन टेबल होगी। उदाहरण के लिए:

    Contact
    ---------
 -> ContactId
|   FirstName
|   LastName
|   etc.
|
|                        ContactField
|                        --------------
|                        ContactFieldId <---
|                        FieldName          |
|                                           |
|   ContactFieldValue                       |
|   -------------------                     |
 -- ContactId                               |
    ContactFieldId -------------------------
    Value

कार्यान्वयन की बारीकियां स्पष्ट रूप से आप पर निर्भर हैं (उदाहरण के लिए, ContactId + ContactFieldId का उपयोग करना है या नहीं ContactFieldValue में कंपाउंड प्राथमिक कुंजी के रूप में ), लेकिन यह सामान्य विचार भर में आना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हम SQL Server 2008 में सभी कॉलम नामों में ISNULL का उपयोग कैसे कर सकते हैं?

  2. SQL सर्वर में किसी तालिका में एक नया पहचान कॉलम कैसे जोड़ें?

  3. एक कस्टम डिलीमीटर के साथ एक बहुत बड़ी स्ट्रिंग को विभाजित करना?

  4. मैं डेटाबेस स्कीमा का संस्करण नियंत्रण कैसे कर सकता हूं?

  5. CTE का उपयोग करके SQL कथन को सरल बनाएं