2011-07-03 10 views
15

मैं समझने के लिए उपयोग के मामलों, फायदे और असुविधाओं एक Liftweb आवेदन में Record, Mapper या यहाँ तक कि दोनों, उपयोग करने के लिए चुनने का हैं चाहते हैं।लिफ्ट में मैपर या रिकॉर्ड का उपयोग कब करें?

यह सवाल आया था जब मैं करने की कोशिश की:

  • मॉडल कक्षाओं के लिए संरचना की तरह एक पेड़ बनाने
  • एक पेज में कक्षाओं के प्रतिपादन के लिए संरचना की तरह एक ऐसी ही पेड़ बनाने
  • सुनिश्चित अलग पेड़ में कक्षाएं एक ही समय में अलग-अलग राज्यों में हो सकती हैं। एक EDIT में है या राज्य बनाते हैं और दूसरा उदाहरण के लिए दृश्य स्थिति में है।
  • मॉडल कक्षाओं को पहले से ही काम कर रहे एक विश्वसनीय वेब सेवा में बनाया, पढ़ा या सहेजा जा सकता है।

मैं सिर्फ रिकॉर्ड के लिए उपयोग मामलों को डाल रहा हूं। आप एक सामान्य तरीके से जवाब दे सकते हैं।

+0

मैं सिर्फ पता चला [इस] (http://groups.google.com/group/liftweb/browse_thread/thread/afc784c7c29b346c/0ca6b2e5e39facc7?lnk=gst&q=mapper+3+years#0ca6b2e5e39facc7) धागा कि कुछ बिंदु पर चर्चा मैपर और रिकॉर्ड के बारे में जहां यह कहता है कि रिकॉर्ड जाने का रास्ता है। इसके बावजूद, मैपर के पास बहुत बेहतर ड्यूमेटेशन है और कम से कम 3 और वर्षों तक इसका समर्थन किया जाएगा। –

+0

क्या मैंने उल्लेख किया कि मैपर स्टैक रिकॉर्ड स्टैक से अधिक पूर्ण लगता है? किसी के पास दोनों के साथ अनुभव पर कुछ हाथ हैं और इसके बारे में कुछ बात कर सकते हैं? –

+4

टिम 100% * WRONG * है और मुझे गलत जानकारी फैलाना नहीं चाहिए। रिकॉर्ड * नहीं * मैपर के लिए एक प्रतिस्थापन है। प्रत्येक का अपना ध्यान केंद्रित होता है (मैपर/जेडीबीसी रिकॉर्ड/जेनेरिक दृढ़ता)। –

उत्तर

16

लिफ्ट लिफ्ट लिफ्ट से पहले लिपर लिफ्ट का हिस्सा रहा है। यह डेटाबेस और स्कैला के बीच एक सरल "सक्रिय रिकॉर्ड" शैली पुल है। मैंने यहां उल्लिखित विचारों के आधार पर मैपर बनाया: http://web.archive.org/web/20070303054927/http://blog.lostlake.org/index.php?/archives/19-Keeping-the-meaning-with-the-bytes.html

मैपर जेडीबीसी से घनिष्ठ रूप से जुड़ा हुआ है और इस प्रकार डेटाबेस से संबंधित है। सरल प्रश्नों के निर्माण के लिए मैपर के पास एक उचित तंत्र है, लेकिन जटिल सामग्री के लिए किसी को एसक्यूएल लिखना है।

मैपर ठोस लेकिन क्रूर है।

रिकॉर्ड बैकिंग स्टोर और स्कैला के बीच एक अधिक सामान्य अमूर्त है। इसमें "बाइट्स के साथ अर्थ रखने" में उल्लिखित विचारों के कमजोर कार्यान्वयन हैं ... और बहुत कम लोग ध्यान या देखभाल करते हैं।

मोंगोडीबी, कॉच डीबी, स्क्वायरल और अन्य स्टोरेज तंत्र के लिए रिकॉर्ड कार्यान्वयन हैं। एक नया बैक-एंड लिखना काम के कुछ दिन है।

रिकॉर्ड में बहुत से "विसंगतियां" हैं और प्रत्येक बैक एंड के अपने स्वयं के quirks है। वर्तमान रिकॉर्ड मालिक ने रिकॉर्ड के थोक रिफैक्टरिंग की शुरुआत की है।

मुझे नहीं लगता कि रिकॉर्ड या मैपर आपको "बॉक्स से बाहर" पेड़ जैसी संरचनाएं देगा जब तक कि आप मोंगोडीबी बैकएंड का उपयोग नहीं कर रहे हों और उस स्थिति में, आपके वृक्ष संरचनाएं संबंधों के बजाय JSON दस्तावेज़ों पर आधारित होंगी ।

+0

यह मैं जितना चाहता था उससे अधिक था। धन्यवाद। एक तरफ ध्यान दें, मेरा "दृढ़ता" एक विश्वसनीय सेवा के पीछे है। इसलिए, मैं अपने रिकॉर्ड कक्षाओं को लागू करूंगा जो उस रीस्टफुल सेवा को लोड/सेव करें। आपने जो कहा है उसे लेते हुए, शायद मुझे यह देखने के लिए मोंगो डीबी को देखना चाहिए कि यह कैसे किया जाता है और इसके बारे में मेरा कोड आधार पर आधारित है। :) –

+1

"बाइट्स के साथ अर्थ रखने" के बारे में लिंक भी एक अच्छा पढ़ा है। –

2

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

मुझे उम्मीद है कि आपके लिए कुछ दिलचस्प बिंदुओं का उल्लेख किया गया है।

+0

रिकॉर्ड स्क्वायरल - संबंधपरक दृष्टिकोण का भी समर्थन करता है। – Etam

+0

वास्तव में, यह करता है। जानकार अच्छा लगा। लेकिन प्रश्नकर्ता के लिए महत्वपूर्ण: स्क्वायरल रिकॉर्ड के शीर्ष पर एक और ओआरएम ढांचा है। तो, आपको दो एपीआई सीखना है। लेकिन इमो स्क्वायरल सबसे अच्छा डेटाबेस अबास्ट्रक्शन है जिसे आप स्कैला के साथ उपयोग कर सकते हैं। – Felix

+3

रिकॉर्ड * नहीं * मैपर के लिए एक प्रतिस्थापन है। –

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