6

मेरे काम पर, मेरे पास अक्सर मेरे django मॉडल में दो टेबल होते हैं और उदाहरण के लिए इस डेटा को एक सीएसवी के रूप में वापस करने के लिए कनेक्ट करना होता है। वह डेटा किसी विदेशी कुंजी से कनेक्ट नहीं है, लेकिन उनके पास कनेक्ट करने के लिए पहचानकर्ता है। इस तथ्य से परिणाम, कि हम इस डेटा को दो अलग-अलग स्रोतों से आयात करते हैं और कभी-कभी समकक्ष गुम हो जाता है, इसलिए मैं प्रविष्टि बनाते समय इसे कनेक्ट नहीं कर सकता।django मॉडल में डेटा जोड़ने के लिए प्रदर्शन अनुकूलन

मेरा प्रश्न है: यदि आप इस तथ्य को सोचते हैं कि मुझे अक्सर इस डेटा को वापस करना है तो इस डेटा को प्रदर्शन के संदर्भ में जोड़ने का सबसे अच्छा तरीका क्या है?

  1. रास्ता: एक नया मॉडल डेटा (एक M2M की तरह) से जोड़ता है या पहचानकर्ता के साथ माता-पिता कक्षा बनाएं, कि दोनों से जुड़े हैं।
class OrderInvoiceConnector(models.Model): 
    order_data = models.ForeignKey(Order, related_name="invoice") 
    invoice_data = models.ForeignKey(Invoice, related_name="order") 
  1. रास्ता: एक नया मॉडल है कि केवल डेटा है कि सीएसवी निर्यात के लिए आवश्यक है की बचत होती है बनाएँ। कुछ की तरह:
class ConnectedData(models.Model): 
    invoice_id = models.CharField(max_length=255) 
    country_iso = models.CharField(max_length=255) 
    invoice_date = models.CharField(max_length=255) 
    tax = models.FloatField(max_length=255) 
    price = models.FloatField() 
+0

नीचे उचित उत्तर देना मुश्किल है, लेकिन मैं कोशिश करता हूं और टिप्पणी करता हूं कि मैं क्या करूँगा और शायद यह सहायक हो सकता है लेकिन कुछ चीजों पर निर्भर करता है। यदि उपयोगकर्ता डाउनलोड करने के लिए एक CSV फ़ाइल की प्रतीक्षा कर रहा है, तो शायद मैं विकल्प 2 के साथ जाऊंगा लेकिन यह सब इस बात पर निर्भर करता है कि डेटा कितनी बार बदलता है और उत्पन्न करने में कितना समय लगता है। डेटा की थोड़ी मात्रा के साथ दिन में कुछ बार ठीक है। अगर यह सीएसवी उपयोगकर्ता द्वारा django प्रोजेक्ट में अनुकूलन योग्य नहीं है, तो मैं उपयोगकर्ता से अनुरोध करने से पहले सीएसवी उत्पन्न करने के बारे में सोचूंगा। अन्यथा आपका पहला विकल्प। यह कहकर, यह बहुत सी चीजों पर निर्भर करता है। –

+0

क्या आप प्रदर्शन समस्या के बारे में कुछ और जानकारी प्रदान कर सकते हैं? क्या डीबी में कुछ सेकंड/मिनट/घंटे लगते हैं। यदि उपयोगकर्ता इसके लिए इंतजार कर रहा है? डेटा कितनी बार बदलता है? –

+0

दिन में एक बार डेटा बदल जाता है। उपयोगकर्ता फ़िल्टरिंग विकल्पों के साथ, सामान्य वेबसाइट से सीएसवी डाउनलोड करने में सक्षम होंगे (उदाहरण: तिथि से फ़िल्टर करें)। प्रत्येक साइट पर 150,000 डेटासेट के लिए जुड़ने में 2 घंटे लगते हैं। –

उत्तर

1

मैं, दूसरे संस्करण के साथ जाना होगा के रूप में आप उल्लेख किया है कि शामिल होने महंगा होगा, और डाटा परिवर्तन एक दैनिक आधार पर किया जाता है। यदि आप केवल पढ़ने के लिए मॉडल बनाते हैं तो आप एक तालिका तालिका में उपयोगकर्ता उपभोग के लिए सभी आवश्यक डेटा पैक कर लेंगे। आपको कुछ स्वचालित नौकरी के साथ डेटा पॉप्युलेट करना होगा, लेकिन यह आपके निर्दिष्ट परिदृश्य में स्वीकार्य दिखता है।

संबंधित मुद्दे