একটি ডাটাবেসে ইমেল ঠিকানার জন্য সর্বোত্তম দৈর্ঘ্য কত?


95

এখানে আমার ক্যোয়ারির উত্তোলিত অংশ রয়েছে, EMAIL_ADDRESSকলামের ডেটা টাইপ এবং সম্পত্তি প্রতিফলিত করছে :

EMAIL_ADDRESS CHARACTER VARYING(20) NOT NULL, 

তবে জন স্যান্ডার্স ব্যবহার করেন VARYING(256)

এটি আমাকে পরামর্শ দেয় যে আমি প্রয়োজনীয়ভাবে সঠিকভাবে বুঝতে পারি নি।

আমি এটিকে বুঝতে পারি যে কোনও ইমেল ঠিকানার দৈর্ঘ্য আমার ক্ষেত্রে 20 টি অক্ষর, এবং জোডনের জন্য 256।

জন কোডে প্রসঙ্গ

CREATE TABLE so."User"
  (
    USER_ID SERIAL NOT NULL,
    USER_NAME CHARACTER VARYING(50) NOT NULL,
    EMAIL_ADDRESS CHARACTER VARYING(256) NOT NULL, // Here
    HASHED_PASSWORD so.HashedPassword NOT NULL,
    OPEN_ID CHARACTER VARYING(512),                                                         
    A_MODERATOR BOOLEAN,
    LOGGED_IN BOOLEAN,
    HAS_BEEN_SENT_A_MODERATOR_MESSAGE BOOLEAN,
    CONSTRAINT User_PK PRIMARY KEY(USER_ID)
  );

আমি সাধারণ মানুষ দ্বারা ব্যবহৃত 20 অক্ষরের বেশি ইমেলের ঠিকানাগুলি কখনও দেখিনি।

একটি ডাটাবেসে ইমেল ঠিকানার জন্য সর্বোত্তম দৈর্ঘ্য কত?


"অনুকূল" বলতে কী বোঝ? আপনি "অনুকূলিতকরণ" করার চেষ্টা করছেন কী?
এস .লট

4
@ এস.লোট: আমি একটি সুরক্ষিত সিস্টেম বানাতে চাই। ব্যবহারকারীর ইনপুট বৃদ্ধির ফলে তারা ডাটাবেসে কোড চালাতে পারে এমন ঝুঁকি বাড়ায়। --- আমি সুরক্ষিত ব্যবস্থা রাখার সর্বোত্তম উপায় হিসাবে অনুকূলটিকে দেখছি।
লিও লোপোল্ড হার্টজ 준영

4
ঠিক আছে, কিছু আনবাউন্ড না করার ক্ষেত্রে নিরাপত্তা বিবেচনা করার সময়, মানগুলি মেনে চলা সর্বদা সার্থক হবে sense "সাধারণ" বা "অনুকূল" কী অনুসরণ করা সম্ভবত সুরক্ষা সমস্যাগুলি প্রবর্তন করবে এবং তারপরে সেগুলি হ্রাস করবে।
কিটসন

4
Stackoverflow উপর এই প্রশ্নের দাড়ায় যে সর্বোচ্চ দৈর্ঘ্য Now সহ "@" চিহ্ন 254 অক্ষর: stackoverflow.com/questions/386294/...
dthrasher

4
এখানে সত্যিই একটি পুঙ্খানুপুঙ্খ উত্তর সঙ্গে @DominicSayers থেকে ইমেল দৈর্ঘ্যের উপর একটি সম্পর্কিত পোস্টে আছে, stackoverflow.com/a/574698/361842
JohnLBevan

উত্তর:


135

কোনও ইমেল ঠিকানার সর্বোচ্চ দৈর্ঘ্য 254 টি অক্ষর।

প্রতিটি ইমেল ঠিকানা দুটি অংশ নিয়ে গঠিত। স্থানীয় অংশ যা '@' সাইন এর আগে আসে এবং এটির ডোমেন অংশটি। "User@example.com" এ, স্থানীয় অংশটি "ব্যবহারকারী", এবং ডোমেন অংশটি "উদাহরণ.com"।

স্থানীয় অংশটি 64৪ টি অক্ষরের বেশি হওয়া উচিত নয় এবং ডোমেনের অংশটি 255 টির বেশি অক্ষরের বেশি হতে পারে না।

কোনও ইমেল ঠিকানার স্থানীয় + @ + ডোমেন অংশগুলির সম্মিলিত দৈর্ঘ্য 254 টি অক্ষরের বেশি হওয়া উচিত নয়। আরএফসি 3696 এরেটা আইডি 1690 তে বর্ণিত হিসাবে ।

আমি এই তথ্যের মূল অংশটি এখান থেকে পেয়েছি


মনে হচ্ছে দৈর্ঘ্য হিসাবে 320 নেওয়া ভাল।
লিও লোপল্ড হার্টজ 준영

40
আমি জানি এটি একটি পুরানো থ্রেড এবং 320 ব্যবহার করার ক্ষেত্রে কোনও সমস্যা নেই, তবে স্থানীয় এবং ডোমেন অংশগুলির জন্য উদ্ধৃত হওয়াগুলির উপরে এবং উপরের অতিরিক্ত বাধা আরোপের কারণে আরএফসি 2821 থেকে অতিরিক্ত ওঠা-restric আরও স্টোরেজ স্পেস যদি সমস্যা হয় তবে তারা এই থ্রেডে হোঁচট খাচ্ছে কিনা তা জানার পক্ষে এটি উপযুক্ত। আরএফসি 3696
HexAndBugs

@ ফ্লাইটপ্ল্যানার যেমন বলেছিলেন, উইকিপিডিয়া এখানে sections বিভাগগুলির সংক্ষিপ্তসার জানিয়েছে : "তবে সর্বাধিক ... পুরো ইমেল ঠিকানাটি 254 টির বেশি অক্ষর না করে"
রুস্টি দ্য বয়রবোট

4
বিশেষত যদি আপনি ইমেল ক্ষেত্রটির একটি অনন্য বাধা থাকতে চান; INNODB এর অধীনে এবং utf8 বর্ণচর্চা (254) একটি স্বতন্ত্র সীমাবদ্ধতা রাখার জন্য যথেষ্ট ছোট (767 বাইট এর চেয়ে কম) এবং বর্ণচর (300) নয়।
স্বায়ত্তশাসন

ইন বোঝায় যা RFC 3696 ত্রুটি-বিচ্যুতি আইডি 1003 আমি দেখেছি এটা বলছেন যে 256 অক্ষর ব্যবহারিক সীমা (এবং 320 অক্ষর সর্বোচ্চ) হয়।
আর্নল্ড শ্রিজার

56

জিজ্ঞাসা মেটাফিল্টার থেকে :

আমার তথ্য 323 ঠিকানার একটি ডাটাবেস থেকে আসে। বিতরণে কিছু উচ্চ-আউটলাইনার রয়েছে (ইতিবাচকভাবে স্কিউড)। এটি সাধারণত বহিরাগতদের ছাড়াই বিতরণ করা হয় (আমি এটি পরীক্ষা করেছি))

ন্যূনতম: 12 ম প্রথম ভাগ

মিডিয়ান: 23 মোড: 24 স্ট্যান্ড দেব (ডাব্লু / আউটলিয়ার): ৫.২০ স্ট্যান্ডার্ড দেব (ডাব্লু / ও আউটলিডার): 4.70

Outliers সহ তথ্য উপাত্তের উপর ভিত্তি করে পরিসীমা 17.8 - 28.2 95.4% ডেটা 12.6 - 33.4 99.7% এর ডেটা 7.4 - 38.6

ডেটা আউটলিয়ারদের উপর ভিত্তি করে রেঞ্জগুলি ১৮.১ - ২.5..5% এর 95৯.৪% এর উপাত্তের .2৮.২% বাদ দিয়েছে ১৩.৪ - ৩২.২৯..7..7% এর 8..7 - ৩.9.৯

আপনি যদি সাইন আপ করেন http://www.abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com/ এর তবে আপনার ইমেল ঠিকানাটি অবশ্যই অবশ্যই একটি বহিরাগত হবে :)

এখানে কি একটি ইমেল ঠিকানা সর্বোচ্চ নিরাপদ দৈর্ঘ্য একটি ওয়েবসাইট আকারে অনুমতি দেওয়া? কিছুটা ভিন্ন গড় দিয়ে রায়কনে (এন = 50,496, গড় = 23):

ইমেল ঠিকানা দৈর্ঘ্য বিতরণ


@ ম্যাসি আসলে কৌতূহলোদ্দীপক যে এটি একটি সাধারণ বিতরণের চেয়ে পোয়েসন বিতরণ - কারও ধারণা আছে কেন এটি এরকম? : পি
পেজম্যান

@ পেজম্যান: কারণটি হ'ল প্রতিটি ইভেন্ট এলোমেলোভাবে বিতরণ করা হয় এবং প্রতিটি ইভেন্ট অনন্ত স্থান থেকে নেওয়া হয়। - আপনি যদি রেডে গাড়ি চালনার সংখ্যা গণনা করেন তবে আপনার সময় সময় বনাম অ্যাক্সেসে গাড়ি চালানোর গাড়ি চালানোর সংখ্যা রয়েছে বলে যদি আপনি একইরকম বিতরণ পান।
লিও লোপোল্ড হার্টজ 준영

ব্যক্তিগতভাবে আমি বেনফোর্ডের আইন আরও ভাল পছন্দ করি: en.wikedia.org/wiki/Benford%27s_law
কিটসন

4
আমি বছর ধরে 120 পরিবর্তনশীল অক্ষর ব্যবহার করেছি। আসল বিশ্বের যুক্তিটি হ'ল এমনকি যদি কেউ আপনার 320 বারচর ক্ষেত্রটি পূরণ করতে প্রস্তুত হয় ... আমি বাজি
ধরছি

18

শুধু ব্যবহার varchar(50)। লম্বা ইমেলগুলি প্রত্যেকবার ক্রেপ হয়।

50 টি অক্ষর কতক্ষণ দেখুন:

পিপলুইথনমেইল @ ddressthislongjustuseashorterone

আপনি যদি 255 টি অক্ষরের ইমেলগুলি অনুমতি দেন:

  • এগুলি প্রদর্শন করা আপনার ইউআইটিকে জগাখিচু করতে পারে (সর্বোপরি এগুলি কেটে ফেলা হবে, সবচেয়ে খারাপভাবে তারা আপনার পাত্রে এবং মার্জিনকে প্রায় চাপ দেয়) এবং
  • ক্ষতিকারক ব্যবহারকারীরা তাদের সাথে এমন জিনিসগুলি করতে পারেন যা আপনি প্রত্যাশা করতে পারবেন না (যেমন হ্যাকাররা গুচ্ছ ডেটা সঞ্চয় করার জন্য একটি বিনামূল্যে অনলাইন এপিআই ব্যবহার করেছিল সেগুলির মতো)

(পরিসংখ্যান দেখায় যে কোনও আইনী ইমেল ঠিকানার জন্য কেউ প্রায় 50 টিরও বেশি অক্ষর প্রবেশ করে না, উদাহরণস্বরূপ দেখুন: পেজম্যানের উত্তর https://stackoverflow.com/a/1199245/87861 )


4
সম্পূর্ণ একমত. তাদের ডান মনের কার কাছে আর কোনও ইমেল ঠিকানা থাকবে না? অবশ্যই, এটি তাত্ত্বিকভাবে সঠিক যে কোনও ইমেল 320 অক্ষর হতে পারে তবে বাস্তব বিশ্বে হতে পারে? আমার সিস্টেমে আমি বর্ণচর (50 )ও ব্যবহার করি এবং আমার কোনও অভিযোগ কখনও আসে নি যে কোনও ব্যবহারকারী নিবন্ধন করতে পারবেন না।
নরবার্ট নরবার্টসন

4
গড় আসল বিশ্বের ইমেল দৈর্ঘ্য কী এবং বিদেশিরা কী এবং কত বড় তা বিশাল ডেটাসেটগুলি থেকে জেনে রাখা আকর্ষণীয় হবে be
নরবার্ট নরবার্টসন

4
ভুল রিয়েল-ওয়ার্ল্ডের প্রচুর ব্যবহারকারী রয়েছে যাদের ইমেলটিতে 50 টিরও বেশি অক্ষর রয়েছে এবং আরও গুরুত্বপূর্ণ এটি কেবল আপনার জন্য এটি পরিবর্তন করতে পারে না। তারা ঠিক করতে পারে না এমন কোনও কিছুর জন্য তাদের অ্যাক্সেস প্রত্যাখ্যান করা অন্যায্য।
মার্কাস ডাউনিং

4
তারা অবশ্যই নতুন ইমেল তৈরি করতে পারে। গুগল একটি তৈরি করুন।
নিকোলাস মানজিনি

এছাড়াও, প্লাস স্বরলিপি সম্পর্কে ভুলবেন না। কিছু শক্তি ব্যবহারকারী এটি তাদের ইনবক্সে ইমেলগুলি আলাদা এবং সংগঠিত করতে ব্যবহার করছেন। মূলত, প্রতিটি ওয়েবসাইট / পরিষেবা / অ্যাপ্লিকেশন অনুযায়ী তাদের কাছে একটি অনন্য (উপ-ইমেল) থাকবে। উদাহরণস্বরূপ, আসুন কল্পনা করা যাক যে আমার সাধারণ ইমেলটি কোনও কোম্পানির নামতে আমার প্রথম নাম এবং সর্বশেষ নাম: ফার্স্ট নেম এবং অ্যাস্টলাস্টোন@superacmecompany.com। এটি ইতিমধ্যে 40 ডলার। এখন, যদি আমি স্ট্যাকওভারফ্লো অ্যাকাউন্টের জন্য একটি সংখ্যার স্বরলিপি ব্যবহার করি: ফার্স্টনাম এবং প্লাস্টিক + স্ট্যাকওভারফ্লো@superacmecompany.com—t ~ 55 টি অক্ষর। কিছু প্লাস স্বরলিপিগুলি দীর্ঘতর হতে পারে, যেমন, + স্ট্যাকওভারফ্লো-ব্যক্তিগত এবং * -কর্ম।
15:39

16

আমার কাজের ইমেল ঠিকানাটি 20 টিরও বেশি অক্ষরের!

উপযুক্ত আরএফসি স্পেসিফিকেশন পড়ুন :

"কোনও ইমেল ঠিকানার স্থানীয় অংশটি characters৪ টি অক্ষর পর্যন্ত দীর্ঘ হতে পারে এবং ডোমেনের নামটিতে সর্বাধিক ২৫৫ টি অক্ষর থাকতে পারে"


4

ডাটাবেসগুলিতে পরিবর্তনশীল চরিত্রের ধরণগুলি অপ্রয়োজনীয় স্থান দখল করে না। সুতরাং, এ জাতীয় ক্ষেত্রগুলিকে যতটা সম্ভব সীমাবদ্ধ করার কোনও কারণ নেই। কোনও ব্যক্তির নামের উপর নির্ভর করে, তাদের সংস্থা এবং তাদের ডোমেন নাম দ্বারা ব্যবহৃত নামকরণের স্কীম, কোনও ঠিকানা সহজেই 20 টি অক্ষর অতিক্রম করতে পারে।

আরএফসি -২22২২ তে স্থানীয় অংশ এবং ডোমেন-নামের দৈর্ঘ্য সম্পর্কে কোনও সীমা নেই । আরএফসি -2181 যদিও ডোমেনের নামটি 255 অক্টেট / অক্ষরে সীমাবদ্ধ করে।

আবার, যেহেতু কোনও বার্চার কেবল আপনার স্ট্রিংয়ের স্ট্রিং দ্বারা ব্যবহৃত স্থানটি ব্যবহার করে, তাই ইমেল ঠিকানার দৈর্ঘ্যের জন্য কোনও ছোট সীমা থাকার কোনও কারণ নেই। কেবল 512 নিয়ে যান এবং উদ্বেগ বন্ধ করুন। অন্য সব কিছুই অকাল অপটিমাইজেশন


3

প্রাথমিকভাবে সর্বাধিক 320 টি অক্ষর (64 + 1 + 255, অন্যান্য উত্তরে প্রদর্শিত হিসাবে) তবে আরএফসি হিসাবে 3696 এরেতা 1003 বলেছেন:

যাইহোক, আরএফসি 2821 এ MAIL এ একটি ঠিকানা দৈর্ঘ্য এবং 256 টি অক্ষরের আরসিপিটি কমান্ডের উপর বিধিনিষেধ রয়েছে। যেহেতু এই ক্ষেত্রগুলিতে উপযুক্ত নয় এমন ঠিকানাগুলি সাধারণত কার্যকর হয় না, তাই ঠিকানার দৈর্ঘ্যের উপরের সীমাটি সাধারণত 256 হিসাবে বিবেচনা করা উচিত।

এবং আরএফসি 5321 বিভাগ থেকে 4.5.3.1.3 :

4.5.3.1.3। পথ

বিপরীতমুখী বা ফরোয়ার্ড-পাথের সর্বোচ্চ মোট দৈর্ঘ্য 256 অক্টেট (বিরামচিহ্ন এবং উপাদান বিভাজক সহ)

এটি খোলার এবং বন্ধ বন্ধনী সহ অন্তর্ভুক্ত তাই এটি আমাদের কেবল ইমেল ঠিকানা 254 octets এ দেয়

তবে মনে রাখবেন যে অক্টেটের সংখ্যা অক্ষরের সংখ্যার সমান নাও হতে পারে (একটি চরটিতে 2 বা তত বেশি অক্টোট থাকতে পারে)। এছাড়াও আরএফসি বিভাগ 4.5.3.1 বলুন যে আরও বেশি ক্ষেত্র থাকতে পারে যে এটি সর্বাধিক এবং এটি সম্ভব তবে এটি সঠিকভাবে ধরতে সার্ভারের গ্যারান্টিযুক্ত নয়।

এবং তারপরে আপনি VARCHAR(254)কোনও ইমেল ঠিকানা সঞ্চয় করতে একটি / অবশ্যই ব্যবহার করতে পারেন ।

দ্রষ্টব্য: কমপক্ষে মাইএসকিউএলে, VARCHAR255 অক্টেটের চেয়ে সাদা কম বা সমান হিসাবে ঘোষিত একটি কলাম সবগুলি হিসাবে সংরক্ষণ করা হবে 1 byte + length(1 দৈর্ঘ্য সংরক্ষণ করতে হবে ) সুতরাং নিম্ন সীমা ব্যবহার করা হলে কোনও স্থান অর্জন করা যাবে না।


আপনি কীভাবে 256 বাইট থেকে 254 এ যান তা ব্যাখ্যা করতে আপনি ব্যর্থ হন I
গিলি

2

অন্যরা যেমন বলেছে, 20 এর চেয়ে বড় উপায় 25 256 + 64 আমার কাছে ভাল লাগছে এবং এটি আরএফসি অনুগত।

আপনার ডাটাবেসের জন্য এত বড় মূল্য না পাওয়ার একমাত্র কারণ হ'ল যদি আপনি কর্মক্ষমতা বা স্থান সম্পর্কে চিন্তা করে থাকেন এবং আপনি যদি তা করে থাকেন তবে আমি 99.99999999999999%% নিশ্চিত যে এটি অকাল অপটিমাইজেশন

বড় হয়।


VARCHAR কেবলমাত্র প্রয়োজনীয় অক্ষরের সংখ্যা (দৈর্ঘ্য) সঞ্চয় করে। কেবলমাত্র আমি দেখছি যে বিষয়টি আপনি যদি প্রতি সারির সীমাতে 8000 বাইটে স্থানের জন্য লড়াই করছেন।
রিচার্ড জাযালে

আমি জায়গার জন্য লড়াই করছি না। আমি সুরক্ষা এবং ব্যবহারযোগ্যতার মধ্যে ভারসাম্যের জন্য লড়াই করছি।
লিও লোপোল্ড হার্টজ 준영

2

একটি CHAR (20) ক্ষেত্র সর্বদা 20 টি অক্ষর গ্রহণ করে, আপনি এটি সমস্ত ব্যবহার করেন না কেন। (প্রায়ই শেষে ব্যবধান সহ padded।) একটি VARCHAR (20) মাঠ পর্যন্ত সময় লাগতে হবে আপ 20 অক্ষর, কিন্তু কম সময় লাগতে পারে। CHAR () এর ধ্রুবক প্রস্থের একটি সুবিধা হ'ল দ্রুত একটি সারণিতে একটি সারিতে ঝাঁপিয়ে দেওয়া, কারণ আপনি কেবল সূচকটি গণনা করতে পারেন এটি অবশ্যই থাকা উচিত। অপূর্ণতা স্থান নষ্ট করছে।

আপনার টেবিলটিতে যদি কোনও VARCHAR (x) কলাম থাকে তবে ধ্রুব আকারের CHAR (x) এর সুবিধা হারাবে। আমি মনে করি মনে হচ্ছে যে মাইএসকিউএল নিঃশব্দে কোনও CHAR () ক্ষেত্রকে পর্দার আড়ালে ভিচারআর () এ রূপান্তর করেছে যদি কিছু কলামগুলি VARCHAR () হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.