मैं एएसपी.नेट एमवीसी साइट के लिए एक उपलब्धि प्रणाली की योजना बना रहा हूं। मैं चाहता हूं कि उपलब्धियां "नियम" डेटाबेस में संग्रहीत हों - मौजूदा उपलब्धियों को प्रबंधित करने के लिए नई उपलब्धियों और केंद्रीय स्थान को जोड़ना आसान हो। उपयोगकर्ताओं को नियमों को बदलने के लिए कोई पहुंच नहीं होगी।वेब ऐप उपलब्धि प्रणाली के लिए डीबी आधारित नियम कैसे बनाएं?
एक उपयोगकर्ता कोई ऐसा कार्य है कि संभावित उपलब्धि अर्जित कर सकता है करता है, db नियम पूछे की जाएगी और अगर मिलान पाए जाने पर, उन्हें उपलब्धियों (एक लुकअप तालिका, (userId, achievementId, dateAwarded) में संग्रहीत दे।
फिलहाल मैं नियंत्रक में कुछ कार्रवाई पर "ट्रिगर" डाल करने की योजना बना रही है, लेकिन कोड है कि काम करता है मॉडल में होगा।
वहाँ एक उपलब्धि प्रणाली है कि पूरा करता है के लिए मानक डीबी स्कीमा है यदि आवश्यक नहीं है तो पहिया को फिर से शुरू करने की कोई ज़रूरत नहीं है। यदि नहीं, तो आपको किस तरह के मुद्दों को लगता है कि पॉप अप होगा,
@Rex M - यह बहुत अच्छा लगता है! उदाहरण के लिए आपने यह दिया है कि यह एक क्रॉन जॉब प्रकार का लुकअप होगा। आप उपयोगकर्ताओं द्वारा किए गए कार्यों में हुकिंग की अनुशंसा कैसे करेंगे? उदाहरण के लिए, वे नई "चीज़" पोस्ट करते हैं और यह 100 वां है, इसलिए उन्हें एक उपलब्धि दें। यह भी मान लें कि एक नई "चीज़" पोस्ट करने के लिए उपलब्धियों की कोई संख्या हो सकती है। – Chaddeus
@ चाड देर से उत्तर के लिए खेद है - अपने प्रश्न का उत्तर देने के लिए, जैसा कि आपने कहा है कि यह एक क्रॉन नौकरी के रूप में सबसे अच्छा काम करता है या, दूसरे जवाब में, मैंने ऐप स्टार्टअप में एक स्व-डालने वाली कैश ऑब्जेक्ट शुरू की है। सादगी और प्रदर्शन के लिए, आपके आस-पास की सबसे अच्छी शर्त, जहां भी संभव हो वहां सीधे उपयोगकर्ता क्रियाओं को जोड़ने से बचें। कई मामलों में आपको किनारे पर धकेलने वाली कार्रवाई और पुरस्कार दिए जाने के बीच कुछ मिनटों के विलंब के साथ जीना बेहतर होता है। –
@ रेक्स एम - धन्यवाद ... फोरस्क्वेयर इसे कैसे करता है? मैं इसका उपयोग नहीं करता, लेकिन जब कोई उपयोगकर्ता बैज को अनलॉक करता है, तो क्या वे तुरंत इसे प्राप्त करते हैं? या बाद में यह सम्मानित किया जाता है जब क्रॉन नौकरी घूमती है? मुझे निश्चित रूप से साइट कलाकार को रखने का विचार पसंद है! होम पेज को लोड करने के लिए बस .48 सेकंड में लोड किया गया।: डी – Chaddeus