sql - সমস - হল বড় করার পদ্ধতি




ডাটাবেস মধ্যে লিঙ্গ(লিঙ্গ) সংরক্ষণ করা (6)

আমি একটি ডেটাবেসে একটি ব্যবহারকারীর লিঙ্গ সংরক্ষণ করতে চাই যতটা সম্ভব সামান্য (আকার / কর্মক্ষমতা) খরচ।

এ পর্যন্ত, 3 পরিস্থিতিতে মনে আসে

  1. Int - কোডে Enum এর সাথে সংযুক্ত (1 = পুরুষ, 2 = মহিলা, 3 = ...)
  2. গৃহস্থালি (1) - স্টোর এম , এফ বা অন্য একক অক্ষর সনাক্তকারী
  3. বিট (বুলিয়ান) - এই বিকল্পের জন্য একটি উপযুক্ত ক্ষেত্রের নাম আছে?

কারণ আমি জিজ্ঞাসা কারণ এই answer যে চরিত্র বুলিয়ান চেয়ে ছোট বলে উল্লেখ করা হয়।

আমি স্পষ্ট করা উচিত যে আমি এমএস এসকিউএল 2008 ব্যবহার করছি, যা আসলে বিট datatype আছে।


অপশন 3 আপনার সেরা বাজি, কিন্তু সমস্ত ডিবি ইঞ্জিনগুলির একটি "বিট" টাইপ নেই। যদি আপনার কোন বিট না থাকে তবে TinyINT আপনার সেরা বাজি হবে।


আমি char 'f', 'm' এবং 'u' ব্যবহার করি কারণ আমি লিঙ্গ, ভয়েস এবং কথোপকথন থেকে লিঙ্গকে সীমাবদ্ধ করি এবং কখনও কখনও লিঙ্গটি জানি না। চূড়ান্ত সিদ্ধান্ত তাদের মতামত।

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


আমি কলাম "লিঙ্গ" কল চাই।

Data Type   Bytes Taken          Number/Range of Values
------------------------------------------------
TinyINT     1                    255 (zero to 255)
INT         4            -       2,147,483,648 to 2,147,483,647
BIT         1 (2 if 9+ columns)  2 (0 and 1)
CHAR(1)     1                    26 if case insensitive, 52 otherwise

msdn.microsoft.com/en-us/library/ms177603.aspx ডাটা টাইপটি বাতিল করা যেতে পারে কারণ এটি শুধুমাত্র দুটি সম্ভাব্য জেন্ডারকে অপর্যাপ্ত করে। INT দুইটির বেশি INT সমর্থন করে তবে এটি 4 বাইট নেয় - একটি ছোট / আরও সংকীর্ণ ডাটা টাইপের সাথে কর্মক্ষমতা আরও ভাল হবে।

CHAR(1) এর INT উপর প্রান্ত রয়েছে - উভয়ই একই বাইট গ্রহণ করে, তবে CHAR আরও মানগুলির সংকীর্ণ সংখ্যা সরবরাহ করে। CHAR(1) ব্যবহার করে "এম", "f", ইত্যাদি প্রাকৃতিক কীগুলি ব্যবহার করে, সংখ্যাসূচক ডেটা ব্যবহার করে যা সরগল / কৃত্রিম কী হিসাবে উল্লেখ করা হয়। CHAR(1) কোনও ডেটাবেসে সমর্থিত, পোর্টের দরকার আছে।

উপসংহার

আমি বিকল্প 2 ব্যবহার করব: CHAR (1)।

অভিযোজ্য বস্তু

লিঙ্গ কলামের একটি সূচক সম্ভবত সাহায্য করবে না কারণ কম কার্ডিনালি কলামে সূচীতে কোনও মূল্য নেই। অর্থাত্, কোনও মূল্য প্রদানের জন্য সূচকের মানগুলির মধ্যে পর্যাপ্ত বৈচিত্র নেই।


এই জন্য একটি আইএসও মান ইতিমধ্যে আছে; আপনার নিজস্ব পরিকল্পনা উদ্ভাবন করার প্রয়োজন নেই:

http://en.wikipedia.org/wiki/ISO_5218

মান অনুযায়ী, কলামটিকে "লিঙ্গ" বলা উচিত এবং 'নিকটতম' ডাটা টাইপ একটি চেক সীমাবদ্ধতা বা উপযুক্ত টেবিলের সাথে টেবিল হবে।


ঔষধের মধ্যে চারটি লিঙ্গ আছে: পুরুষ, মহিলা, অনিশ্চিত, এবং অজানা। আপনার চারটি প্রয়োজন হবে না তবে আপনাকে অবশ্যই 1, 2, এবং 4 এর প্রয়োজন হবে। এই ডেটাটাইপটির জন্য ডিফল্ট মান থাকা উপযুক্ত নয়। বোলেয়ান হিসাবে এটি 'কম' এবং 'হয় না' অবস্থার সাথেও কম।


CREATE TABLE Admission (
    Rno INT PRIMARY KEY AUTO_INCREMENT,
    Name VARCHAR(25) NOT NULL,
    Gender ENUM('M','F'),
    Boolean_Valu boolean,
    Dob Date,
    Fees numeric(7,2) NOT NULL
);




insert into Admission (Name,Gender,Boolean_Valu,Dob,Fees)values('Raj','M',true,'1990-07-12',50000);
insert into Admission (Name,Gender,Boolean_Valu,Dob,Fees)values('Rani','F',false,'1994-05-10',15000);
select * from admission;

এখানে লিঙ্ক বিবরণ লিখুন





types