2011-03-08 12 views
9

क्या केंटिको सीएमएस पोर्टल कार्यान्वयन को बनाने के तरीके पर कोई सर्वोत्तम प्रथा है जो कई से अधिक रिश्तों के आसपास आधारित है (यानी एक वेबसाइट जो खाद्य उत्पाद बेचती है और इसमें एक बड़ा अनुभाग है व्यंजनों - प्रत्येक उत्पाद का उपयोग कई व्यंजनों में किया जाता है, प्रत्येक नुस्खा साइट पर बेचे जाने वाले कई उत्पादों का उपयोग कर सकता है)?केंटिको में कई से अधिक रिश्तों

क्या केंटिको बस ऐसा करने का गलत उपकरण है या इस तरह के रिश्ते को संभालने के लिए केंटिको के भीतर समाधान हैं?

+0

मानते हुए अपने अपने डेटा भंडारण के लिए एक वेबसाइट के रूप में प्रस्तुत b करने के लिए है, तो मुझे लगता है कि एंथनी महान काम करेंगे। –

उत्तर

7

मैं संबंधित दस्तावेज़ सिस्टम में निर्मित पर विचार करता हूं। दस्तावेज़ पर गुण टैब के तहत, संबंधित दस्तावेज़ों के लिए एक अनुभाग है। कार्यक्षमता यहाँ वर्णित है:

Document Properties, Related Docs

यदि यह अपनी वेबसाइट के लिए कार्यक्षमता का एक बड़ा टुकड़ा था, तो आप शायद आसान पहुँच के लिए मौजूदा पृष्ठ, डिजाइन, फार्म, गुण टैब के लिए एक और टैब के रूप में खंड जोड़ सकते हैं । आपको मॉड्यूलसाइट मैनेजर -> विकास के क्षेत्र को संशोधित करने की आवश्यकता होगी। एक और सिर ऊपर: वे तकनीकी रूप से दिशाहीन रिश्ते हैं, लेकिन आप दोनों तरीकों से जाने के लिए आपके प्रश्नों की संरचना कर सकते हैं:

SELECT * 
FROM CMS_Document d 
JOIN CMS_Relationship r 
    ON (d.DocumentID = r.LeftNodeID 
    OR d.DocumentID = r.RightNodeID) 
Where DocumentID = 100 

ऊपर कोड CMS_Relationship मेज पर CMS_Document तालिका में शामिल हो जाएगा आप के साथ दस्तावेज़ के लिए सभी संबंधित दस्तावेज देने के लिए आईडी 100

आप डेटाबेस एक चोटी पर लेते हैं, संबंधित दस्तावेज़ के लिए तालिका संरचना बहुत सरल है:

Related Document Tables

तो जैसा कि McBeev सुझाव दिया, मैं रचनात्मक होगा उत्पादों और व्यंजनों के लिए एक कस्टम दस्तावेज़ प्रकार खा लिया। फिर आप उन्हें लिंक कर सकते हैं जैसा कि मैंने ऊपर उल्लिखित किया है। सौभाग्य!

0

कस्टम टेबल्स का उपयोग करके और अपने स्वयं के कस्टम वेबपर्ट्स लिखने से आप इन लक्ष्यों को पूरा करने में एक लंबा सफर तय करेंगे।

0

आप अपने उत्पादों और व्यंजनों के लिए कस्टम दस्तावेज़ प्रकार बनाने के साथ एक लंबा सफर तय कर सकते हैं और फिर मौजूदा दस्तावेज़ कार्यक्षमता में अंतर्निहित लिंक का उपयोग कर सकते हैं।

हालांकि मैं dvanbale से सहमत हूं, आप इसे कस्टम टेबल्स के साथ भी पूरा कर सकते हैं।

यह इस बात पर निर्भर करता है कि आप वास्तव में क्या करना चाहते हैं।

+0

सहमत है, उदाहरण के लिए वह ईकॉमर्स मॉड्यूल भी प्रदान करेगा, बेहतर सुझाव देने के लिए हमें spec के बारे में अधिक जानकारी जाननी होगी। – Daveloper

+1

आपको किस प्रकार की अतिरिक्त जानकारी चाहिए? मैं यहां एक "सर्वश्रेष्ठ अभ्यास" प्रश्न पूछ रहा हूं लेकिन यह एक वास्तविक समस्या से चमकता है। मैं केंटिको में रिश्तों के बारे में जानता हूं और मैं "संबंध का घटक" बना सकता हूं, लेकिन फिर जब भी उपयोगकर्ता एक नई नुस्खा बनाता है तो उन्हें प्रत्येक उत्पाद का उपयोग करने और रिश्तों को मैन्युअल रूप से सेट करने के लिए याद रखना होगा। अंत में मैं उत्पाद पृष्ठ और संबंधित उत्पादों पर संबंधित व्यंजनों की एक सूची नुस्खा पृष्ठ पर चाहूंगा और मैं इस संबंध को बनाने के लिए उपयोगकर्ता को आसान बनाना चाहता हूं। क्या किसी ने पहले ऐसा कुछ बनाया है? कोई सलाह? –

0

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

मैंने वास्तव में जो कुछ किया है उसका एक विस्तृत संस्करण पोस्ट किया है। मुझे यह पता चला जब मैं यह देखने के लिए खोज रहा था कि यह अनुक्रमित है या नहीं। आप इसे यहाँ देख सकते हैं:

http://www.kenticosolutions.com/Developer-Tips/Tip/May-2011/Many-to-Many-relationships-in-the-Kentico-CMS-Cont.aspx

+0

क्या आप एक लिंक के बजाय अपने उत्तर में विस्तार शामिल कर सकते हैं? – Ren

2

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

http://www.kentico.com/docs/devguide/index.html?developing_form_controls.htm

0

यह सीधे सीएमएस और का उपयोग कर किसी भी कस्टम कोड या क्वेरी लेखन के बिना ऐसा करना संभव है।

सौभाग्य से मैंने इसके बारे में एक लेख लिखा है और इसे सफलतापूर्वक कार्यान्वित किया है जो डेवलपर की आवश्यकता के बिना संबंधपरक डेटा को प्रबंधित करने के लिए सामग्री व्यवस्थापक को पर्याप्त लचीलापन देता है।

Related Content through a repeater