मैंने लंबे समय तक पंक्ति उन्मुख डेटाबेस डिज़ाइन का उपयोग किया है और डेटावेयर हाउस परियोजनाओं और बिग डेटा नमूने को छोड़कर, मैंने OLTP ऐप के लिए कॉलम उन्मुख डेटाबेस डिज़ाइन का उपयोग नहीं किया है।कॉलम उन्मुख डेटाबेस बनाम पंक्ति उन्मुख डेटाबेस
मेरे पंक्ति उन्मुख तालिका
तरहID, Make, Model, Month, Miles, Cost
1 BMW Z3 12 12000 100
हमारी टीम में कुछ लोगों को स्तंभ उन्मुख डेटाबेस डिजाइन की वकालत लग रहा है। वे सुझाव देते हैं कि सभी कॉलम नाम संपत्ति तालिका में संपत्ति के नाम होना चाहिए। फिर एक और तालिका उद्धरण में दो कॉलम PropertyName और PropertyValue होंगे।
.NET कोड में, हम प्रत्येक कुंजी पढ़ते हैं और तुलनात्मक रूप से टाइप की गई वस्तु से तुलना करते हैं और परिवर्तित करते हैं। कोड वास्तव में गन्दा हो रहा है।
if (qwi.DomainCode == typeof(CoreBO.Base.iQQConstants.MBPCollateralInfo).Name)
{
if (qwi.RefCode == iQQConstants.MBPCollateralInfo.ENGINETYPE)
{
Aspiration = qwi.Value;
}
else if (qwi.RefCode == iQQConstants.MBPCollateralInfo.FUELTYPE)
{
FuelType = qwi.Value;
}
else if (qwi.RefCode == iQQConstants.MBPCollateralInfo.MAKE)
{
Make = qwi.Value;
}
else if (qwi.RefCode == iQQConstants.MBPCollateralInfo.MILEAGE)
{
int reading = 0;
bool success = int.TryParse(qwi.Value, out reading);
if (success)
{
OdometerReading = reading;
}
}
}
इस स्तंभ उन्मुख डिजाइन के लिए तर्क हम तालिका स्कीमा और संग्रहीत proc बदलने की जरूरत नहीं होगी कि (हम अभी भी इकाई की रूपरेखा के बजाय संग्रहीत proc उपयोग कर रहे हैं) है।
ऐसा लगता है कि हम वास्तविक समस्या में आगे बढ़ रहे हैं। कॉलम उन्मुख डिजाइन उद्योग में अच्छी तरह से स्वीकार किया जाता है।
प्रश्न "कॉलम उन्मुख" (कॉलम स्टोर) डीबीएमएस के साथ कुछ भी नहीं करना प्रतीत होता है। प्रश्न वास्तव में ईएवी डिजाइन पैटर्न के बारे में है। – sqlvogel
"हम अभी भी एंटीटी फ्रेमवर्क के बजाय संग्रहीत प्रो का उपयोग कर रहे हैं" मैंने कई छोटे और मध्यम आकार की परियोजनाओं में ईएफ के साथ खेला और अब और नहीं सोचें कि ईएफ जाने का एक तरीका है। मैंने जो परीक्षण किया और समझ लिया है उससे ईएफ को स्मृति में डेटा रखने की आवश्यकता है (यानी अद्यतन) जो गंभीर कार्य माना जाता है, अक्सर एक दरवाजा स्टॉपर होता है। – Mariusz
"हम अभी भी एंटीटी फ्रेमवर्क के बजाय संग्रहीत प्रो का उपयोग कर रहे हैं" ईएफ को इसे संशोधित करने में सक्षम होने के लिए स्मृति में डेटा की आवश्यकता होती है, इसलिए अद्यतन डीबीओ। मैटेबल एसईटी सक्रिय = 1 जहां सक्रिय = 0 बड़ी संख्या में डेटा के लिए ईएफ का उपयोग करके तुच्छ नहीं हो सकता है (लेकिन मुझे यह भी पसंद है क्योंकि यह बट को बड़ा समय देता है) – Mariusz