मैं आपके मूल प्रश्न का उत्तर देने का प्रयास करूंगा। इसे एक टेबल में रखना ठीक है जब तक कि आपके पास इकट्ठा करने के लिए बहुत सारी व्यक्तिगत जानकारी न हो। उस स्थिति में इसे विभाजित करने का अर्थ हो सकता है। यह निर्णय उस व्यक्तिगत जानकारी की मात्रा के आधार पर किया जाना चाहिए जिसके साथ आप काम कर रहे हैं और इसे कितनी बार एक्सेस किया जाना चाहिए।
मैं ज्यादातर समय कहेंगे मैं एक एकल तालिका में कुछ इस तरह करते हैं:
UserID, FirstName, LastName, Email, Password, TempPassword
लेकिन ... अगर आपको लगता है कि अधिक से अधिक एकत्रित कर रहे हैं। मान लें कि आप फोन, फैक्स, जन्म तिथि, जीवनी इत्यादि इकट्ठा कर रहे हैं। और यदि उसमें से अधिकतर जानकारी शायद ही कभी एक्सेस की जाती है तो मैं शायद इसे अपनी तालिका में रखूंगा और इसे एक-से-एक रिश्ते से जोड़ूंगा। आखिरकार, आपके पास एक टेबल पर कम कॉलम हैं, तेज़ी से उस तालिका के विरुद्ध आपके प्रश्न होंगे। और कभी-कभी यह उन तालिकाओं को सरल बनाने के लिए समझ में आता है जो अधिकतर एक्सेस किए जाते हैं। जॉइन के साथ एक प्रदर्शन मारा जाता है हालांकि जब भी आपको उस व्यक्तिगत जानकारी तक पहुंचने की आवश्यकता होती है, तो ऐसा कुछ है जिसे आपको विचार करना होगा।
संपादित करें - आप जानते हैं कि, मैंने बस कुछ सोचा था। यदि आप उपयोगकर्ता नाम या ईमेल फ़ील्ड (जो भी आप चाहें) पर एक इंडेक्स बनाते हैं, तो यह उपयोगकर्ता तालिका में इतने सारे कॉलम बनाने के प्रदर्शन की कमी को लगभग पूरी तरह समाप्त कर देगा। मैं कहता हूं कि जब भी आप लॉगिन करते हैं तो WHERE क्लॉज वास्तव में उपयोगकर्ता नाम खोजने के लिए बहुत तेज़ होगा यदि उसके पास एक अनुक्रमणिका है और इससे कोई फर्क नहीं पड़ता कि आपके पास उस तालिका में 100 कॉलम हैं। तो मैंने अपनी राय बदल दी है। मैं इसे सब एक टेबल में रखूंगा।;)
किसी भी मामले में, क्योंकि सुरक्षा एक लोकप्रिय विषय प्रतीत होती है, पासवर्ड एक हैश मान होना चाहिए। मैं SHA1 (या SHA256 का सुझाव दूंगा यदि आप इसके बारे में वास्तव में चिंतित हैं)। TempPassword को हैश का भी उपयोग करना चाहिए और यह केवल भूल गए पासवर्ड कार्यक्षमता के लिए है। स्पष्ट रूप से हैश के साथ आप डिक्रिप्ट नहीं कर सकते हैं और उपयोगकर्ता को अपना मूल पासवर्ड भेज सकते हैं। तो इसके बजाय आप एक अस्थायी पासवर्ड उत्पन्न करते हैं जिसके साथ वे लॉगिन कर सकते हैं, और फिर लॉगिन के बाद फिर से अपना पासवर्ड बदलने के लिए मजबूर कर सकते हैं।
स्रोत
2009-06-03 22:44:19
बस स्पष्ट करने के लिए; क्या आप जानना चाहते हैं कि डेटाबेस में पासवर्ड को सही ढंग से कैसे व्यवस्थित करना है, या आप बस यह जानना चाहते हैं कि उपयोगकर्ता प्रोफ़ाइल डेटा को बेस खाता डेटा से अलग किया जाना चाहिए या नहीं? मैंने पूर्व के लिए उत्तर दिया, लेकिन सवाल फिर से पढ़ने पर, आप बाद वाले को चाहते हैं। – Rob
अधिकतर जवाब हैंशिंग और पासवर्ड को सलाम करने के लिए विधि पर ध्यान केंद्रित करते हैं। यह सार्थक जानकारी है, लेकिन ओपी के सवाल को संबोधित नहीं करता है। –
हां मैं sha1 और salting का उपयोग कर पासवर्ड संग्रहित करूँगा। – Tim