উত্তর:
এই ডেটা ধরণের প্রতিশব্দ।
আমি এখানে অন্যরকম পন্থা অবলম্বন করতে যাচ্ছি এবং পরামর্শ দিচ্ছি যে আপনার সহকর্মী বিকাশকারীদের পক্ষে আপনার কোডটি বোঝা ঠিক ততটাই জরুরি কারণ এটি সংকলক / ডাটাবেসের ক্ষেত্রে। বুলিয়ান ব্যবহার করা টিনিন্যান্ট ব্যবহারের মতো একই কাজ করতে পারে তবে এটি আপনার উদ্দেশ্য কী তা শব্দার্থকভাবে জানানোর সুবিধা রয়েছে এবং এটি মূল্যবান।
আপনি যদি টিনিনেন্ট ব্যবহার করেন তবে এটি স্পষ্ট নয় যে আপনার কেবলমাত্র মানগুলি 0 এবং 1 দেখতে হবে। একটি বুলিয়ান সর্বদা সত্য বা মিথ্যা।
booleanমাইএসকিউএলে কোনও আলাদা ডেটাটাইপ নয়; এটি কেবল একটি প্রতিশব্দ tinyint। এই পৃষ্ঠাটি মাইএসকিউএল ম্যানুয়ালটিতে দেখুন ।
ব্যক্তিগতভাবে আমি অগ্রাধিকার হিসাবে টিনিনেন্ট ব্যবহার করার পরামর্শ দেব, কারণ বুলেয়ান আপনার নাম থেকে যা মনে করে তা তা করে না, সুতরাং এটি সম্ভাব্য বিভ্রান্তিকর কোড তৈরি করে। তবে ব্যবহারিক স্তরে, এটি সত্যিই কিছু যায় আসে না - তারা উভয়ই একই কাজ করে, তাই আপনি কোনওটি ব্যবহার করে কোনও লাভ বা হারাচ্ছেন না।
এটি সহজ এবং দ্রুততম এনাম ব্যবহার করুন
আমি এনাম বা টিনিনেন্ট (1) এর প্রস্তাব দেব না যেমন বিট (1) এর বুলিয়ান মান সংরক্ষণের জন্য কেবল 1 বিট প্রয়োজন হয় যখন টিনিনেন্ট (1) এর জন্য 8 বিট লাগে needs
সুত্র
মাইএসকিউএল-এ বুলিয়ান মানগুলির জন্য TINYINT বনাম ENUM (0, 1)
BIT(M) - approximately (M+7)/8 bytesদেখুন: dev.mysql.com/doc/refman/8.0/en/stores-requirements.html
যদিও এটা এটা সত্য boolএবং tinyint(1)হয় বৈশিষ্ট্যগুলি অভিন্ন, boolপছন্দের কারণ এটি আপনাকে যা করতে চেষ্টা করছেন কি শব্দার্থিক অর্থ বহন করে হওয়া উচিত। এছাড়াও, অনেকগুলি ওআরএম boolআপনার প্রোগ্রামিং ভাষার স্থানীয় বুলিয়ান ধরণে রূপান্তর করবে ।
আমার অভিজ্ঞতা যখন ব্যবহার ড্যাপার সাথে সংযোগ স্থাপনের জন্য মাইএসকিউএল যে এটা কোন ব্যাপার । আমি নিম্নলিখিত স্ক্রিপ্টটি ব্যবহার করে একটি নন-বিহীন বিট (1) কে নালার টিনিনেন্ট (1) এ পরিবর্তন করেছি:
ALTER TABLE TableName MODIFY Setting BOOLEAN null;
তারপরে ড্যাপার ব্যতিক্রম ছোঁড়া শুরু করলেন। আমি স্ক্রিপ্টের আগে এবং পরে পার্থক্যটি দেখার চেষ্টা করেছি। এবং লক্ষ্য (বিট) (1) tinyint (1) এ পরিবর্তিত হয়েছে।
আমি তখন দৌড়েছি:
ALTER TABLE TableName CHANGE COLUMN Setting Setting BIT(1) NULL DEFAULT NULL;
যা সমস্যার সমাধান করেছে।
booleanহিসাবে আচরণ করেtinyint(1)। আপনি ব্যবহার করতে পারেন তাইboolean,trueএবংfalseএবং মাইএসকিউএল একইরূপে তাদেরtinyint(1),1এবং0।