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

ডেটাবেসে PRICE ফিল্ড INT হিসেবে নাকি FLOAT হিসেবে সংরক্ষণ করা উচিত?

আপনাকে ডেটাবেসে PRICE ফিল্ড INT বা FLOAT হিসেবে সংরক্ষণ করার প্রয়োজন নেই। এর জন্য আপনি DECIMAL() ব্যবহার করতে পারেন।

বেশির ভাগ সময় ইন্টিজার ফ্লোটিং পয়েন্ট নম্বর রিপ্রেজেন্ট করতে ব্যবহার হয় এবং এই ইন্টিজারগুলো অভ্যন্তরীণভাবে DECIMAL() ডেটা টাইপে কাস্ট হয়। তাই আপনার যদি PRICE ফিল্ড থাকে, তবে সবসময় DECIMAL() ডেটা টাইপ ব্যবহার করুন। সিনট্যাক্স নিচে দেওয়া হলো:

DECIMAL(M,D);

এখানে, M মানে TotalNumberOfDigit এবং D মানে Number Of Digit After Decimal Point।

উপরের কনসেপ্ট বুঝতে PRICE ফিল্ড DECIMAL ডেটা টাইপসহ একটি টেবিল তৈরি করা যাক। কোয়েরিটি হলো:

mysql> create table Decimal_Demo 
-> ( 
-> Id int NOT NULL AUTO_INCREMENT, 
-> PRICE DECIMAL(18,2), 
-> PRIMARY KEY(Id) 
-> ); Query OK, 0 rows affected (1.63 sec)

ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করা যাক। কোয়েরিটি হলো:

mysql> insert into Decimal_Demo(PRICE) values(99999999999999.99); Query OK, 1 row affected (0.11 sec) mysql> insert into Decimal_Demo(PRICE) values(10000000000000.99); Query OK, 1 row affected (0.36 sec)

সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখানো যাক। কোয়েরিটি হলো:

mysql> select *from Decimal_Demo;

আউটপুট নিচে দেওয়া হলো:

+----+-------------------+ | Id | PRICE | +----+-------------------+ | 1 | 99999999999999.99 | | 2 | 10000000000000.99 | +----+-------------------+ 2 rows in set (0.00 sec)

ব্যাখ্যা: FLOAT/DOUBLE` এপ্রক্সিমেট ভ্যালু সংরক্ষণ করে (ফ্লোটিং পয়েন্ট এরর হতে পারে), INT` সেন্টে সংরক্ষণ করলে ম্যানুয়ালি হ্যান্ডলিং লাগে। DECIMAL(M,D) একজ্যাক্ট প্রিসিশন দেয়, আর্থিক হিসাব-নিকাশের জন্য স্ট্যান্ডার্ড চয়েস। DECIMAL(18,2) মানে মোট ১৮ ডিজিট 그중 ২টি দশমিক বিন্দুর পর, যা বড় পরিমাণের টাকা-পয়সা হ্যান্ডল করতে যথেষ্ট।

  1. ভালো ডাটাবেস ডিজাইনের উদ্দেশ্য

  2. MySQL ডেটাবেস ফাইলগুলো কোথায় স্টোর থাকে? (@@datadir)

  3. FBI-এর NGI বায়োমেট্রিক্স ডাটাবেস কেন আপনাকে চিন্তিত করা উচিত

  4. কি অ্যাপ স্টোর ডাউন আছে?