2009-11-09 11 views
8

मैं एक साधारण साइट बनाकर रेल सीख रहा हूं जहां उपयोगकर्ता लेखों और उन लेखों पर टिप्पणी कर सकते हैं। मेरे पास एक दृश्य है जो उपयोगकर्ता के सबसे हाल के लेख और टिप्पणियों को सूचीबद्ध करता है। अब मैं उपयोगकर्ता 'प्रोफाइल' जोड़ना चाहता हूं जहां उपयोगकर्ता अपने स्थान, आयु और लघु जीवनी जैसी जानकारी दर्ज कर सकते हैं। मैं सोच रहा हूं कि यह प्रोफ़ाइल एक अलग मॉडल/संसाधन होना चाहिए (मेरे पास पहले से ही मेरे उपयोगकर्ता मॉडल में बहुत से फ़ील्ड हैं क्योंकि मैं ऑथलॉगिक और इसके अधिकांश वैकल्पिक फ़ील्ड का उपयोग कर रहा हूं)।क्या उपयोगकर्ता का प्रोफ़ाइल एक अलग मॉडल होना चाहिए?

एक अलग संसाधन का उपयोग करने के पेशेवरों और विपक्ष क्या हैं?

+0

यह भी देखें: http://softwareengineering.stackexchange.com/questions/241089/keep-user-and-user-profile-in-different-tables – Jon

उत्तर

2

मैं इसे अलग रखूंगा। आपके सभी उपयोगकर्ता प्रोफ़ाइल भरना नहीं चाहते हैं, इसलिए वे आपकी उपयोगकर्ता तालिका में बैठे खाली फ़ील्ड होंगे। इसका मतलब यह भी है कि आप अपने उपयोगकर्ता मॉडल के किसी भी तर्क को बदले बिना प्रोफ़ाइल फ़ील्ड बदल सकते हैं।

4
  • पेशेवरों: एक ही बार में प्रबंध 2 थोड़ा कठिन

यह मूल रूप कितना बड़ा उपयोगकर्ता और प्रोफ़ाइल कर रहे हैं करने के लिए नीचे आता है: यह एक मॉडल

  • विपक्ष को सरल। यदि उपयोगकर्ता 5 फ़ील्ड है, और प्रोफाइल 3, कोई बिंदु नहीं है। लेकिन यदि उपयोगकर्ता 12 फ़ील्ड है, और प्रोफाइल 20 है, तो आपको निश्चित रूप से करना चाहिए।

  • +0

    यदि आप प्रत्येक के पास "निश्चित रूप से" उन्हें विभाजित किया जाए तो उन्हें क्यों विभाजित करना चाहिए बहुत सारे खेतों? – Aaron

    0

    मौजूदा उपयोगकर्ता तालिका की चौड़ाई पर निर्भर करता है। डाटाबेस आमतौर पर बाइट्स की संख्या के लिए हैसा सीमा को एक रिकर्ड में शामिल किया जा सकता है। मैं fyou के करीब हैं (या जिस पर आप आमतौर पर कर सकते हैं यदि आपके पास शून्य मूल्यों के साथ बहुत से फ़ील्ड हैं) सीमा, मैं बेहतर प्रदर्शन के लिए एक-से-एक संबंध के साथ एक तालिका जोड़ूंगा और रिकॉर्ड की संभावना कम होगी कि अचानक डाला नहीं जा सकता क्योंकि पंक्ति के आकार के लिए बहुत अधिक डेटा है। यदि आप सीमा के पास कहीं भी नहीं हैं, तो एक्सिसिटिंग टेबल में जोड़ें।

    4

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

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

    शायद जब भी आप उपयोगकर्ता को प्रदर्शित करते हैं तो स्थान की आवश्यकता होती है (उन्होंने छोड़ी गई टिप्पणी पर कहें), लेकिन जीवनी एक अलग मॉडल होना चाहिए? आप सही टूटने यह पता लगाने की है, लेकिन सामान्य नियम चीजों की संरचना करने के ताकि आप डेटा है कि अभी नहीं किया जा रहा खींचने के लिए नहीं है।

    4

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

    आप बाद में पाते हैं कि आप किसी कारण (जैसे एक उपयोगकर्ता एकाधिक प्रोफ़ाइल होती हैं कर सकते हैं) यह बहुत काम उन्हें बाहर विभाजित करने के लिए नहीं होना चाहिए के लिए एक अलग तालिका की जरूरत है।

    मैं दो तालिकाओं होने के गलती की है और यह मेरे लिए कुछ भी लेकिन अतिरिक्त जटिलता नहीं खरीदा था। आप उपयोगकर्ता से प्रोफ़ाइल अलग हैं

    +0

    मेरे पास एक ही अनुभव है। – Aaron

    3

    एक उपयोगकर्ता ऐसी टिप्पणियां, आदि के रूप अपनी साइट पर विभिन्न संसाधनों, "मालिक" तो यह बस एक और संसाधन है। उपयोगकर्ता स्थैतिक है, जबकि प्रोफ़ाइल समय-समय पर बदल जाएगी।

    इसे अलग करने से आपको आसानी से प्रोफ़ाइल इतिहास बनाए रखने की अनुमति मिल जाएगी।

    संबंधित मुद्दे