কম্পিউটার টিউটোরিয়াল

MySQL ডেটা টাইপ: INT বনাম ENUM - কোনটি কখন ব্যবহার করবেন?

ডেটাবেস ডিজাইন সময় সঠিক ডেটা টাইপ বেছে নেওয়া জরুরি। INT এবং ENUM-এর মধ্যে পার্থক্য এবং ব্যবহার ক্ষেত্রে নিচে আলোচনা করা হলো।

ENUM ব্যবহার করুন যখন:

  • আপনি আগে থেকে জানেন যে কেবল নির্দিষ্ট কিছু ভ্যালুই আসবে
  • ডেটা ইন্টিগ্রিটি নিশ্চিত করতে চান (অবৈধ ভ্যালু ব্লক হবে)
  • স্টোরেজ স্পেস বাঁচাতে চান (ENUM কম স্পেস নেয়)

ENUM উদাহরণ

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Number ENUM('10','20','30')
    -> );
mysql> INSERT INTO DemoTable(Number) VALUES('10'); -- OK
mysql> INSERT INTO DemoTable(Number) VALUES('20'); -- OK
mysql> INSERT INTO DemoTable(Number) VALUES('30'); -- OK
mysql> INSERT INTO DemoTable(Number) VALUES('50'); -- ERROR 1265: Data truncated
mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
|  1 | 10     |
|  2 | 20     |
|  3 | 30     |
+----+--------+

TINYINT UNSIGNED ব্যবহার করুন যখন:

  • আপনি ভ্যালুর রেঞ্জ জানেন না বা ভ্যালু পরিবর্তনশীল
  • ফ্লেক্সিবিলিটি চান
  • গাণিতিক অপারেশন করতে হবে

TINYINT UNSIGNED উদাহরণ

mysql> CREATE TABLE DemoTable2 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Number TINYINT UNSIGNED
    -> );
mysql> INSERT INTO DemoTable2(Number) VALUES(100); -- OK
mysql> INSERT INTO DemoTable2(Number) VALUES(50);  -- OK
mysql> INSERT INTO DemoTable2(Number) VALUES(60);  -- OK
mysql> INSERT INTO DemoTable2(Number) VALUES(70);  -- OK
mysql> SELECT * FROM DemoTable2;
+----+--------+
| Id | Number |
+----+--------+
|  1 |    100 |
|  2 |     50 |
|  3 |     60 |
|  4 |     70 |
+----+--------+

তুলনামূলক সারসংক্ষেপ

বিষয়ENUMTINYINT UNSIGNED
রেস্ট্রিকশনউচ্চ (শুধু ডিফাইন করা ভ্যালু)নিম্ন (০-২৫৫ যেকোনো মান)
স্টোরেজ১-২ বাইট১ বাইট
গাণিতিক অপারেশনসهولة নয়সহজে সম্ভব
ভ্যালু যোগ/বদলALTER TABLE দরকারডায়রেক্ট ইনসার্ট

সুপারিশ: স্থির ক্যাটেগরি (যেমন: স্ট্যাটাস, সাইজ, টাইপ) এর জন্য ENUM, আর সংখ্যাসূচক মাপ বা পরিবর্তনশীল ডেটার জন্য TINYINT UNSIGNED ব্যবহার করুন।

  1. SQL Server-এ MySQL ENUM ডেটা টাইপের সমতুল্য কী?

  2. C++-এ ডেটা টাইপের রেঞ্জ ক্যালকুলেট করা

  3. C#-এ Enum (Enumeration) বেসিক ব্যবহার

  4. SQL Server-এ ডেটা টাইপ (Data Types)