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

क्या किसी सरणी को फ़ील्ड मान के रूप में संग्रहीत करना, या सरणी मानों को रिकॉर्ड के रूप में संग्रहीत करना एक अच्छा विचार है?

मुझे लगता है कि आपको डेटाबेस सामान्यीकरण के बारे में पढ़ना चाहिए। और अपने लिए फैसला करो। हालांकि संक्षेप में, आपके प्रस्ताव में कई समस्याएं हैं, लेकिन आप तय कर सकते हैं कि आप उनके साथ रह सकते हैं।

सबसे स्पष्ट हैं:

  1. क्या होगा यदि पंक्ति(1) में एक अतिरिक्त टैग जोड़ा जाए? क्या आपको पहले पार्स करना है, जांचें कि यह पहले से मौजूद है या नहीं, फिर पंक्ति को tags.append(newTag) के रूप में अपडेट करें ।
  2. किसी टैग को हटाना अभी भी बदतर है? टैग खोजें, मौजूद है, टैग फिर से बनाएं।
  3. क्या होगा यदि किसी टैग को नाम बदलना है - कुछ मॉडरेशन प्रक्रिया, शायद?
  4. इससे भी बुरी बात यह है कि अलग-अलग लोग किसी टैग-नाम को अलग-अलग तरीके से निर्दिष्ट करते हैं - इसे युक्तिसंगत बनाना कठिन होगा।
  5. यदि आप टैग के आधार पर डेटा क्वेरी करना चाहते हैं तो क्या होगा? आपकी क्वेरी जितनी जटिल होनी चाहिए, उससे कहीं अधिक जटिल हो जाती है।
  6. प्रस्तुति:क्लाइंट को टैग का उपयोग करने के लिए उसे पार्स करना होगा। विभाजक क्षेत्र के बारे में क्या? इसे बदलें और सभी क्लाइंट को बदलना होगा।

संक्षेप में, ये सभी ऑपरेशन कठिन और अधिक बोझिल हो जाते हैं। सामान्यीकरण ऐसे मुद्दों को दूर करने के लिए डिज़ाइन किया गया है। संभवतः आप जो कहते हैं, उसे करने का एकमात्र कारण, IMO, यह है कि आप डेटा को एक बार के रूप में कैप्चर कर रहे हैं और यह केवल सूचनात्मक है - अर्थात, उपयोगकर्ता के लिए समझ में आता है, लेकिन सिस्टम प्रति-से नहीं। यह कहने की तरह है कि यह शायद सबसे अच्छा बचा है (फिर से, आईएमओ)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रारंभिक स्कीमा के साथ पोस्टग्रेज़ डॉकटर कंटेनर बनाएँ

  2. बहुत धीमी सूची के साथ IN का उपयोग करते हुए SQL क्वेरी

  3. धीमी पोस्टग्रेज 9.3 प्रश्न

  4. पोस्टग्रेज उपयोगकर्ता बनाने की अनुमति नहीं

  5. रेल कंसोल उपयोगकर्ताओं को आईडी की सरणी द्वारा ढूंढता है