ASP.NET उपयोगकर्ता प्रोफ़ाइल बनाम पुरानी शैली उपयोगकर्ता कक्षा / तालिकाओं में बनाया गया है

मैं ASP.NET में प्रोफ़ाइल सुविधा के उपयोग के आसपास सर्वोत्तम अभ्यास के बारे में मार्गदर्शन की तलाश में हूं।

आप कैसे तय करते हैं कि अंतर्निहित उपयोगकर्ता प्रोफ़ाइल में क्या रखा जाना चाहिए, या यदि आपको अपनी डेटाबेस तालिका बनाना चाहिए और वांछित फ़ील्ड के लिए कॉलम जोड़ना है? उदाहरण के लिए, उपयोगकर्ता के पास ज़िप कोड होता है, क्या मुझे अपनी खुद की तालिका में ज़िप कोड सहेजना चाहिए, या क्या मुझे इसे web.config xml प्रोफ़ाइल में जोड़ना चाहिए और इसे उपयोगकर्ता प्रोफ़ाइल ASP.NET तंत्र के माध्यम से एक्सेस करना चाहिए?

जिन पेशेवरों / विपक्ष के बारे में मैं अभी सोच सकता हूं वे हैं क्योंकि चूंकि मैं प्रोफ़ाइल को बहुत अच्छी तरह से नहीं जानता (यह अभी मैट्रिक्स का थोड़ा सा है), शायद मैं जो चाहूं वह कर सकता हूं यदि मैं चाहता हूं टेबल रूट पर जाएं (उदाहरण के लिए, एसक्यूएल सभी उपयोगकर्ताओं को एक ही ज़िप कोड में वर्तमान उपयोगकर्ता के रूप में प्राप्त करने के लिए)। अगर मैं ASP.NET प्रोफ़ाइल का उपयोग करता हूं तो मुझे नहीं पता कि मैं वही कर सकता हूं या नहीं।

0
जोड़ा संपादित
विचारों: 1

5 उत्तर

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

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

अपनी खुद की चीज को रोल करने से आप इसे उचित रूप से सामान्यीकृत डेटाबेस में डाल सकते हैं, जो प्रदर्शन में काफी सुधार करता है, लेकिन आपको अपने सभी प्रोफाइल प्रबंधन कोड को बहुत अधिक लिखना होगा।

संपादित करें: इसके अलावा, प्रोफ़ाइल कैश्ड नहीं हैं, इसलिए किसी प्रोफ़ाइल पर प्रत्येक पहुंच डेटाबेस पर पहले जाती है (फिर उस अनुरोध के लिए कैश किया जाता है, लेकिन अगला अनुरोध इसे डेटाबेस से फिर से प्राप्त करेगा)

यदि आप अपनी खुद की चीज़ लिखने के बारे में सोच रहे हैं, तो शायद एक कस्टम प्रोफाइल प्रदाता आपको दोनों दुनिया का सर्वश्रेष्ठ प्रदान करता है - निर्बाध एकीकरण, फिर भी कस्टम सामान जो आप करना चाहते हैं।

0
जोड़ा

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

0
जोड़ा
> पते जैसे अन्य जानकारी अपने स्वयं के डेटाबेस में अपने स्वयं के डेटाबेस तर्क से सहेजी जानी चाहिए ठीक है, तो ऐसा लगता है कि यह जाने का तरीका है, क्या कोई मुझे बता सकता है कि इस नई तालिका में एएसपी_ उपयोगकर्ता टेबल को सबसे अच्छा कैसे लिंक करना है? क्या मुझे उपयोगकर्ता नाम को asp_ तालिका में लिंक के रूप में उपयोग करना चाहिए, उपयोगकर्ता आईडी (वह बदसूरत guid मुझे नहीं पता कि कैसे प्राप्त करें) या क्या?
जोड़ा लेखक csmba, स्रोत
आप अपनी खुद की उपयोगकर्ता तालिका भी रोल कर सकते हैं जो वही जानकारी रखेगी, फिर सत्र चर या कुछ इसी तरह का उपयोग करें, उस स्थिति में आपके पास पूर्ण नियंत्रण होगा। मैंने इस समय अपने स्वयं के उपयोगकर्ता टेबल पर स्विच किया और मुझे खेद नहीं है।
जोड़ा लेखक Sean, स्रोत

मुझे लगता है कि पूरक डेटा के लिए इसका उपयोग करना बेहतर है जो कि उपयोगकर्ता के लिए महत्वपूर्ण नहीं है, जो कि सामान्य रूप से तब महत्वपूर्ण होता है जब वह उपयोगकर्ता लॉग इन कर रहा हो। ऐसे डेटा को सोचें जो कुछ भी तोड़ नहीं पाएंगे यदि यह सब मिटा दिया गया था।

निश्चित रूप से व्यक्तिगत वरीयता है लेकिन अन्य ने कुछ अन्य महत्वपूर्ण मुद्दों को उठाया है।

यह भी बहुत उपयोगी है कि इसका उपयोग किसी अनधिकृत उपयोगकर्ता के लिए किया जा सकता है जिसका प्रोफ़ाइल किसी अज्ञात कुकी के साथ बनाए रखा जाता है।

0
जोड़ा

उपयोगकर्ता प्रोफ़ाइल व्यक्तिगत अनुकूलन (AKA। प्रोफाइल गुण) के लिए एक अच्छा साफ ढांचा है। (उदाहरण के लिए iGoogle) इसकी समस्या यह क्वेरी के लिए डिज़ाइन नहीं की गई है और सार्वजनिक उपयोगकर्ता को डेटा साझा करने के लिए आदर्श नहीं है। (आप अभी भी कम प्रदर्शन के साथ ऐसा करने में सक्षम होंगे)

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

0
जोड़ा

Ive केवल 2 अनुप्रयोगों का निर्माण किया जो प्रोफाइल प्रदाता का उपयोग करते थे। तब से मैं इसका उपयोग करने से दूर रह गया हूं। दोनों ऐप्स के लिए मैंने उपयोगकर्ता के नाम, पता और फोन नंबर जैसे उपयोगकर्ता के बारे में जानकारी संग्रहीत करने के लिए इसका इस्तेमाल किया।

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

मैं इस प्रकार की जानकारी को अपनी तालिका में संग्रहीत करने की अनुशंसा करता हूं।

0
जोड़ा