प्रस्तावना: मुझे नियम इंजन, नियम बनाने, मॉडलिंग नियमों, नियमों के लिए डेटा संरचनाओं को कार्यान्वित करने, या व्हाट्नॉट के साथ अनुभव नहीं है। इसलिए, मुझे नहीं पता कि मैं क्या कर रहा हूं या यदि मैंने नीचे जो प्रयास किया है वह आधार से बाहर है।तर्क नियमों को संग्रहीत करने के लिए उपयुक्त डेटा संरचना और डेटाबेस स्कीमा क्या है?
मैं यह समझने की कोशिश कर रहा हूं कि निम्नलिखित काल्पनिक परिदृश्य को कैसे स्टोर और संसाधित करना है। मेरी समस्या को सरल बनाने के लिए, कहें कि मेरे पास एक प्रकार का गेम है जहां कोई उपयोगकर्ता ऑब्जेक्ट खरीदता है, जहां 1000 संभावित वस्तुएं हो सकती हैं, और वस्तुओं को निर्दिष्ट अनुक्रम में और केवल कुछ समूहों में खरीदा जाना चाहिए। उदाहरण के लिए, कहें कि मैं उपयोगकर्ता हूं और मैं ऑब्जेक्ट एफ खरीदना चाहता हूं। इससे पहले कि मैं ऑब्जेक्ट एफ खरीद सकूं, मैंने पहले ऑब्जेक्ट ए या (बी और सी) खरीदा होगा। मैं एक ही समय में एफ और ए नहीं खरीद सकता, न ही एफ और बी, सी। नियम अनुक्रम में अनुक्रम में होना चाहिए। पहले, फिर बाद में एफ। या, बी, सी पहले, फिर बाद में एफ। मैं अभी खरीद, या उपयोगकर्ता की किसी भी अन्य विशेषताओं के बीच समय के साथ चिंतित नहीं हूं, सिर्फ यह कि वे अभी के लिए सही अनुक्रम हैं।
संभावित रूप से हजारों ऑब्जेक्ट्स के लिए इस जानकारी को संग्रहीत करने का सबसे अच्छा तरीका क्या है जो मुझे खरीदे जाने वाले ऑब्जेक्ट के नियमों में पढ़ने की अनुमति देता है, और फिर उपयोगकर्ता के पिछले खरीद इतिहास के विरुद्ध जांचता है?
मैंने इसका प्रयास किया है, लेकिन मैं ए या (बी और सी) जैसे समूहों को लागू करने की कोशिश में फंस गया हूं।
Objects
(ID(int),Description(char))
ObjectPurchRules
(ObjectID(int),ReqirementObjectID(int),OperatorRule(char),Sequence(int))
लेकिन स्पष्ट रूप से के रूप में आप परिणामों के माध्यम से संसाधित करते हैं, समूह के बिना, आप गलत जवाब मिल: मैं जहाँ मैं इन तालिकाओं एक डेटाबेस में नियमों स्टोर करने के लिए करना चाहते हैं। यदि संभव हो तो मैं अत्यधिक स्ट्रिंग पार्सिंग से बचना चाहता हूं :)। एक ऑब्जेक्ट में पिछली आवश्यक खरीदारियों की अज्ञात संख्या हो सकती है। नियमों को संसाधित करने के लिए एसक्यूएल या psuedocode स्निपेट की सराहना की जाएगी। :)