আমি_হর্স_বিহীন_নাম_নামে বলা সমস্ত কিছুর সাথে আমি একমত , এবং আমি সাধারণত এরউইনের মন্তব্য পরামর্শের সাথে একমত:
না, চরটি নিকৃষ্ট (এবং পুরানো)। পাঠ্য এবং বারচর একই (প্রায়) সম্পাদন করে।
মেটাডেটা
একটি ছোটখাট ব্যতিক্রম সহ, আমি কেবলমাত্র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)। তবে আমি সেই মানদণ্ডের সাথে খাপ খায় এমন কোনও বিষয় ভাবতে পারি না।
অতিরিক্ত নোট
সম্পর্কিত প্রশ্নোত্তর: