क्या एक उपयोगकर्ता डेटाबेस का एक मानक कार्यान्वयन है?


14

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

मैंने खोजने की कोशिश की कि मैं Google पर क्या देख रहा था, लेकिन कोई फायदा नहीं हुआ। बस मुझे पता है कि सवाल आगे स्पष्टीकरण या कुछ भी जरूरत है।

जवाबों:


17

मेरा सुझाव है कि आप सामान्य सामान्यीकरण मानकों का उपयोग करें। प्रति पंक्ति एक उपयोगकर्ता।

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

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


आधुनिक पासवर्ड हैशिंग विकल्प argon2, bcrypt या scrypt होगा।
douggard

is_active को इस सूची में भी होना चाहिए
Ibo

8

एक बड़े पुराने फैशन "यह निर्भर करता है" के लिए जाना है।

बेशक आपको इस टेबल पर किसी प्रकार की कुंजी की आवश्यकता है। आप एक UserID के साथ शुरू कर सकते हैं। यह सिर्फ एक वृद्धिशील INT हो सकता है (या यदि आप 2.1 मिलियन से अधिक उपयोगकर्ता होने जा रहे हैं)।

मैंने देखा है बहुत सारे डेटाबेस भी मुख्य यूजर के रूप में GUID का उपयोग करते हैं। लेकिन यह पीके के लिए GUIDs का उपयोग करके कीड़े की एक पूरी अलग-अलग कैन खोल रही है।

फिर आपको यह तय करने की आवश्यकता है कि आप अपने डेटाबेस को कितना सामान्यीकृत करना चाहते हैं। क्या आप अपने उपयोगकर्ता को कई ईमेल करने की अनुमति देने जा रहे हैं? कई फोन नंबर? यदि हां, तो उन्हें एक अलग तालिका में होना चाहिए।

मैं मुख्य उपयोगकर्ता तालिका को यहां रखूंगा:

  • किसी प्रकार की ID या PK आप उपयोग कर सकते हैं
  • पहला नाम / अंतिम नाम या सिर्फ एक उपयोगकर्ता नाम
  • उपयोगकर्ता की स्थिति के कुछ प्रकार (सक्रिय, अक्षम, आदि) - (एक स्थिति तालिका से जोड़ने वाले छोटे)
  • रचना तिथि

वह आपका शुरुआती बिंदु होना चाहिए।

वहां से आप जो स्टोर करना चाहते हैं उसके आधार पर दूसरे कॉलम जोड़ सकते हैं। ईमेल एक ईमेल टेबल से लिंक कर सकता है, एक एड्रेस टेबल से पता कर सकता है, आदि पासवर्ड हैश + नमक का उपयोग कर सकता है लेकिन क्या आपने ओपनिड पर विचार किया है?

मैं अत्यधिक आपको इस लेख को पढ़ने की सलाह देता हूं - http://www.sqlservercentral.com/articles/data-modeling/71725/


0

यदि यह उपयोगकर्ताओं के प्रमाणीकरण के बारे में है, तो मैं LDAP का उपयोग करूंगा। यदि आप पहले से ही डेटाबेस का उपयोग करते हैं और अन्य तालिकाओं (आदेश, उत्पाद, आदि) हैं, तो उपयोगकर्ताओं के लिए एक अलग डेटाबेस न बनाएं। आप इन तालिकाओं में शामिल होना चाह सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.