আমি জানি এই বিষয়টি কিছুটা বিতর্কিত এবং ইন্টারনেটে প্রচুর বিভিন্ন নিবন্ধ / মতামত রয়েছে। দুর্ভাগ্যক্রমে, তাদের বেশিরভাগই ধরে নেন যে ব্যক্তিটি জানেন না যে এনইউএল এবং খালি স্ট্রিংয়ের মধ্যে পার্থক্য কী। সুতরাং তারা যোগদান / সমষ্টিগুলির সাথে অবাক করা ফলাফল সম্পর্কে গল্পগুলি বলে এবং সাধারণত কিছুটা আরও উন্নত এসকিউএল পাঠগুলি করে। এটি করে, তারা একেবারে পুরো বিষয়টি মিস করে এবং তাই আমার পক্ষে অকেজো। সুতরাং আশা করি এই প্রশ্ন এবং সমস্ত উত্তর বিষয়টিকে সামান্য এগিয়ে নিয়ে যাবে।
ধরা যাক আমার কাছে ব্যক্তিগত তথ্য (নাম, জন্ম, ইত্যাদি) সহ একটি টেবিল রয়েছে যেখানে কলামগুলির মধ্যে একটিতে বার্তা টাইপ সহ একটি ইমেল ঠিকানা। আমরা ধরে নিই যে কোনও কারণে কিছু লোক ইমেল ঠিকানা সরবরাহ করতে চায় না। টেবিলের মধ্যে এই জাতীয় ডেটা (ইমেল ছাড়াই) সন্নিবেশ করার সময়, দুটি উপলভ্য পছন্দ রয়েছে: সেলকে ন্যূনএলএল সেট করুন বা খালি স্ট্রিংয়ে সেট করুন ('')। আসুন ধরে নেওয়া যাক যে আমি একের বেশি সমাধানের জন্য সমস্ত প্রযুক্তিগত প্রভাব সম্পর্কে অবগত এবং আমি উভয় দৃশ্যের জন্য সঠিক এসকিউএল অনুসন্ধান তৈরি করতে পারি। সমস্যাটি তখনও যখন প্রযুক্তিগত স্তরে উভয় মান পৃথক হয়, লজিক্যাল স্তরে এগুলি ঠিক একই। NULL এবং '' দেখার পরে আমি একটি সিদ্ধান্তে পৌঁছেছি: আমি লোকটির ইমেল ঠিকানা জানি না। আমি যতই চেষ্টা করি না কেন, আমি নূলে বা খালি স্ট্রিং ব্যবহার করে কোনও ইমেল প্রেরণ করতে সক্ষম হইনি, সুতরাং বাহ্যিকভাবে বেশিরভাগ এসএমটিপি সার্ভারগুলি আমার যুক্তির সাথে একমত হয়। সুতরাং আমি নুল ব্যবহার করি যেখানে আমি মান জানি না এবং খালি স্ট্রিংটিকে একটি খারাপ জিনিস মনে করি।
সহকর্মীদের সাথে কিছু তীব্র আলোচনার পরে আমি দুটি প্রশ্ন নিয়ে এসেছি:
আমি কি ঠিক ধরে নিচ্ছি যে অজানা মানের জন্য খালি স্ট্রিং ব্যবহারের ফলে একটি ডাটাবেস তথ্যের বিষয়ে "মিথ্যা" সৃষ্টি করছে? আরও সুনির্দিষ্টভাবে বলা: কোনটি মূল্য এবং কী নয় সে সম্পর্কে এসকিউএল এর ধারণাটি ব্যবহার করে আমি উপসংহারে আসতে পারি: আমাদের ই-মেইল ঠিকানা রয়েছে, কেবল এটি সন্ধান করে এটি বাতিল নয় is তবে তারপরে, ইমেল প্রেরণের চেষ্টা করার সময় আমি পরস্পরবিরোধী সিদ্ধান্তে পৌঁছে যাব: না, আমাদের ই-মেইল ঠিকানা নেই, যে @! # $ ডাটাবেসটি অবশ্যই মিথ্যা বলেছে!
এমন কোনও যৌক্তিক পরিস্থিতি রয়েছে যেখানে কোনও খালি স্ট্রিং '' গুরুত্বপূর্ণ তথ্যের (যেমন মান এবং কোনও মূল্য ছাড়াও) এত ভাল বাহক হতে পারে, যা অন্য কোনও উপায়ে (অতিরিক্ত কলামের মতো) সংরক্ষণ করা ঝামেলা / অদক্ষ। আমি অনেক পোস্ট দেখে দাবি করেছি যে কখনও কখনও খালি স্ট্রিং ব্যবহার করে আসল মান এবং NUL গুলি ব্যবহার করা ভাল তবে এখনও অবধি এমন দৃশ্য দেখেনি যা যৌক্তিক হবে (এসকিউএল / ডিবি ডিজাইনের ক্ষেত্রে)।
পিএস কিছু লোক উত্তর দেওয়ার জন্য প্রলুব্ধ হবে, এটি কেবল ব্যক্তিগত স্বাদের বিষয়। আমি রাজি নই। আমার কাছে এটি গুরুত্বপূর্ণ পরিণতি সহ একটি ডিজাইনের সিদ্ধান্ত। সুতরাং আমি উত্তরগুলি দেখতে চাই যেখানে কিছু যুক্তিসঙ্গত এবং / বা প্রযুক্তিগত কারণে এটি সম্পর্কে মতামত সমর্থিত হয়।
''
এমনকি ওরাকল-এও একইরকম নয় NULL
। উদাহরণস্বরূপ, একটি CHAR(1)
কলামকে মান নির্ধারণের ''
ফলে ' '
(অর্থাত্ একটি স্থান) ফলাফল হবে , না NULL
। তদ্ব্যতীত, জ্যাসেক যদি ওরাকল ব্যবহার করে তবে এই প্রশ্নটি সম্ভবত উঠে আসে না :-)
'' IS NULL
মূল্যায়ন করে true
।