मैं अपने डेटाबेस माइग्रेशन फ़ाइल में इन स्ट्रिंग/पाठ फ़ील्ड है:रेल सक्रिय ActiveRecord सत्यापन: एक स्ट्रिंग की अधिकतम लंबाई?
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
और ये मेरे प्रश्न हैं:
- हर स्ट्रिंग/पाठ विशेषता दोनों उद्देश्यों के लिए अधिकतम लंबाई सत्यापन होना चाहिए, सुरक्षा (यदि आप कुछ एमबी टेक्स्ट इनपुट प्राप्त नहीं करना चाहते हैं) और डेटाबेस (यदि स्ट्रिंग = वर्कर, mysql में 255 वर्ण सीमाएं हैं)। क्या यह सही है या डेटाबेस में पूरी तरह से प्रत्येक स्ट्रिंग/टेक्स्ट विशेषता के लिए अधिकतम लंबाई सत्यापन नहीं होने का कोई कारण है?
- यदि मुझे लेखक और शीर्षक की सटीक लंबाई की परवाह नहीं है, क्योंकि वे तारों के रूप में संग्रहीत होने में बहुत लंबा नहीं हैं, तो क्या मुझे उनमें से प्रत्येक के लिए अधिकतम लंबाई 255 निर्धारित करनी चाहिए?
- यदि यूआरएल की अधिकतम संभव लंबाई लगभग 2000 वर्ण है, तो क्या यह स्ट्रिंग के रूप में लिंक स्टोर करना सुरक्षित है, न कि ग्रंथों के रूप में? अगर मैं regexp का उपयोग कर अपने प्रारूप को पहले से ही मान्य कर रहा हूं तो क्या मुझे लिंक विशेषता की अधिकतम लंबाई मान्य करनी चाहिए?
- क्या किसी सामग्री (टेक्स्ट) विशेषता में असीमित लंबाई के इनपुट से डेटाबेस की सुरक्षा के लिए अधिकतम लंबाई होनी चाहिए? उदाहरण के लिए, एक टेक्स्ट फ़ील्ड की अधिकतम लंबाई 100,000 वर्णों को उचित पर सेट कर रहा है, या यह पूरी तरह व्यर्थ और अक्षम है?
मैं समझता हूं कि ये प्रश्न कुछ लोगों के लिए महत्वहीन प्रतीत हो सकते हैं, लेकिन फिर भी - यह इनपुट का सत्यापन है, जो कि किसी भी आवेदन के लिए आवश्यक है, - और मुझे लगता है कि यह यहां पर भद्दा होना उचित है।