আমি_হর্স_বিহীন_নাম_নামে বলা সমস্ত কিছুর সাথে আমি একমত , এবং আমি সাধারণত এরউইনের মন্তব্য পরামর্শের সাথে একমত:
না, চরটি নিকৃষ্ট (এবং পুরানো)। পাঠ্য এবং বারচর একই (প্রায়) সম্পাদন করে।
মেটাডেটা
একটি ছোটখাট ব্যতিক্রম সহ, আমি কেবলমাত্রchar()
তখনই ব্যবহার করি যখন আমি মেটা-ডেটাটি বলতে চাই যে এই আবশ্যকটির এক্স-অক্ষর থাকতে হবে। যদিও আমি জানি যে char()
কেবল ইনপুটটি সীমা ছাড়িয়ে গেলে অভিযোগ করে, আমি প্রায়শই CHECK
সীমাবদ্ধতায় অনাবৃতদের বিরুদ্ধে সুরক্ষা দেব । উদাহরণ স্বরূপ,
CREATE TABLE foo (
x char(10) CHECK ( length(x) = 10 )
);
INSERT INTO foo VALUES (repeat('x', 9));
আমি কয়েকটি কারণে এটি করি,
char(x)
কখনও কখনও স্থির-প্রস্থের কলাম হিসাবে স্কিমা-লোডারগুলির সাথে অনুমিত হয়। এটি স্থিত-প্রস্থের স্ট্রিংয়ের জন্য অনুকূলিত হওয়া কোনও ভাষার মধ্যে পার্থক্য আনতে পারে।
- এটি এমন একটি সম্মেলন প্রতিষ্ঠা করে যা অর্থবোধ করে এবং সহজেই প্রয়োগ করা হয়। এই কনভেনশন থেকে কোড উত্পন্ন করতে আমি কোনও ভাষায় স্কিমা-লোডার লিখতে পারি।
আমি যেখানে এটি করতে পারি তার একটি উদাহরণ দরকার,
- দুই অক্ষর রাষ্ট্র বর্ণমালা, যদিও কারণ এই তালিকা গণিত করা যেতে পারে, আমি সাধারণত এটি একটি সঙ্গে চেষ্টা করবো
ENUM
।
- যানবাহন শনাক্তকরণের নম্বর
- মডেল নম্বর (স্থির আকারের)
ত্রুটিগুলিতে
লক্ষ্য করুন কিছু লোক সীমাবদ্ধতার উভয় পক্ষের ত্রুটি বার্তাগুলির অসঙ্গতিতে অস্বস্তিতে থাকতে পারে তবে এটি আমাকে বিরক্ত করে না
test=# INSERT INTO foo VALUES (repeat('x', 9));
ERROR: new row for relation "foo" violates check constraint "foo_x_check"
DETAIL: Failing row contains (xxxxxxxxx ).
test=# INSERT INTO foo VALUES (repeat('x', 11));
ERROR: value too long for type character(10)
বিপরীতের সাথে varchar
তদুপরি, আমি মনে করি উপরোক্ত পরামর্শটি প্রায় সর্বদা ব্যবহারেরtext
একটি কনভেনশনের সাথে খুব ভাল ফিট করে । আপনি সম্পর্কে জিজ্ঞাসা varchar(n)
। আমি কখনই এটি ব্যবহার করি না । কমপক্ষে, আমি শেষ সময়টি ব্যবহার করার কথা মনে করতে পারি না varchar(n)
।
- যদি কোনও স্পপের স্থিত-প্রস্থের ক্ষেত্র থাকে যা আমি বিশ্বাস করি, আমি ব্যবহার করি
char(n)
,
- অন্যথায়, আমি
text
কার্যকরভাবে যা ব্যবহার varchar
(সীমাবদ্ধ নেই)
যদি আমি এমন একটি স্পেস পেয়েছি যেটির পরিবর্তনশীল দৈর্ঘ্যের পাঠ্য-কীগুলি অর্থবহ ছিল এবং আমি স্থির সর্বাধিক দৈর্ঘ্যের উপর বিশ্বাস রাখি তবে আমিও এটি ব্যবহার করব varchar(n)
। তবে আমি সেই মানদণ্ডের সাথে খাপ খায় এমন কোনও বিষয় ভাবতে পারি না।
অতিরিক্ত নোট
সম্পর্কিত প্রশ্নোত্তর: