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

तालिका के लिए कस्टम फ़ील्ड स्टोर करने के लिए डीबी डिज़ाइन

यह एक आम समस्या है और इसका कोई सटीक समाधान नहीं है। कुछ समाधान:

1. varchar2 प्रकार के X फ़ील्ड, प्रकार संख्या के Y फ़ील्ड और दिनांक प्रकार के Z फ़ील्ड परिभाषित करें। यह संभावित रूप से कस्टम फ़ील्ड की संख्या से 3 गुना अधिक निकलता है लेकिन आपको अब कभी भी कोई रूपांतरण समस्या नहीं होगी।

आपका उदाहरण इस तरह सामने आएगा:

Id Name field_char1  field2_char2 field_char3 ... field_num1 field_num2 ...
1  lap1 lappy        lappy        lappy       ... 12         13     
2  lap2 lappy2       lappy2       lapp2       ... 13         12

आपके उदाहरण में आपके पास दोनों पंक्तियों पर समान संख्या में संख्यात्मक मान और वर्ण मान हैं, लेकिन यह इस तरह नहीं होना चाहिए:उदाहरण के लिए तीसरी पंक्ति में कोई संख्यात्मक फ़ील्ड नहीं हो सकता है।

2. varchar2 प्रकार के X फ़ील्ड को परिभाषित करें और संख्या या दिनांक फ़ील्ड को संग्रहीत करने के लिए एक विशेषण फ़ंक्शन लागू करें (उदाहरण के लिए दिनांक को YYYYMMDDHH24miss के रूप में संग्रहीत किया जा सकता है। ) आपको एक अतिरिक्त फ़ील्ड की भी आवश्यकता होगी जो पंक्ति के संदर्भ को परिभाषित करेगी। आप to_number . लागू करेंगे या to_char केवल तभी कार्य करें जब पंक्तियाँ अच्छे प्रकार की हों।

आपका उदाहरण:

Id Name context field1  field2 field3  field4 field5
1  lap1 type A  lappy   lappy  12      13     lappy
2  lap2 type B  lappy2  13     lappy2  lapp2  12

आप DECODE या CASE का उपयोग करके तालिका को क्वेरी कर सकते हैं:

SELECT * 
  FROM laptop
 WHERE CASE WHEN context = 'TYPE A' THEN to_number(field3) END = 12

दूसरा डिज़ाइन वह है जिसका उपयोग Oracle Financials ERP (दूसरों के बीच) में किया जाता है। संदर्भ आपको इस डिज़ाइन के साथ CHECK बाधाओं को परिभाषित करने की अनुमति देता है (उदाहरण के लिए CHECK (CASE WHEN context = 'TYPE A' THEN to_number(field3) > 0 ) अखंडता सुनिश्चित करने के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle श्रोता को बाहरी रूप से सुनने के लिए कॉन्फ़िगर करना

  2. क्या पीएल/एसक्यूएल के पास जावा के बराबर स्ट्रिंगटोकनाइज़र है?

  3. Oracle XDB में नियंत्रण वर्णों से बचना

  4. Initcap 4 वर्णों से छोटे शब्दों को छोड़ें

  5. ओरेकल जेडीबीसी में तैयार स्टेटमेंट और सेटटाइमस्टैम्प