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