আমি মনে করি আপনি ডাটাবেস দ্বারা প্রয়োগ করা বিদেশী কী বাধা সম্পর্কে কথা বলছেন । আপনি সম্ভবত ইতিমধ্যে বিদেশী কী ব্যবহার করছেন, আপনি কেবল এটি সম্পর্কে ডাটাবেসটি বলেননি।
মনে করুন কোনও প্রোগ্রামার ইতিমধ্যে সঠিক পদ্ধতিতে এটি ইতিমধ্যে করছে, তাহলে আমাদের কী সত্যই বিদেশী কীগুলির ধারণাটি দরকার?
তাত্ত্বিকভাবে, না। যাইহোক, বাগ ছাড়া কোনও সফ্টওয়্যার কখনও পাওয়া যায় নি।
অ্যাপ্লিকেশন কোডের বাগগুলি সাধারণত বিপজ্জনক নয় - আপনি ত্রুটিটি সনাক্ত করে এটি ঠিক করে দিন এবং তারপরে অ্যাপ্লিকেশনটি আবার সুচারুভাবে চলে। তবে কোনও বাগ যদি কর্কট ডেটা ডাটাবেসে প্রবেশের অনুমতি দেয় তবে আপনি এটির সাথে আটকে থাকেন! ডাটাবেসে দুর্নীতিগ্রস্থ তথ্য থেকে পুনরুদ্ধার করা খুব কঠিন।
FogBugz এর একটি সূক্ষ্ম বাগটি কোনও দুর্নীতিগ্রস্থ বিদেশী কী ডাটাবেসে লেখার অনুমতি দিয়েছে কিনা তা বিবেচনা করুন । বাগ বাগের সমাধান এবং গ্রাহকদের কাছে দ্রুত বাগ ফিক্স রিলিজে দ্রুত সমাধান করা সহজ হতে পারে। তবে কয়েক ডজন ডাটাবেসে থাকা দুর্নীতিগ্রস্থ ডেটা কীভাবে ঠিক করা উচিত? ঠিক কোডটি এখন হঠাৎই ভেঙে যেতে পারে কারণ বিদেশী কীগুলির অখণ্ডতা সম্পর্কে অনুমানগুলি আর ধরে না।
ওয়েব অ্যাপ্লিকেশনগুলিতে আপনার সাধারণত ডাটাবেসের সাথে কথা বলার জন্য একটি প্রোগ্রাম থাকে, তাই কেবলমাত্র একটি জায়গা রয়েছে যেখানে বাগগুলি ডেটাটিকে দূষিত করতে পারে। একটি এন্টারপ্রাইজ অ্যাপ্লিকেশনটিতে একই ডাটাবেসের সাথে কথা বলার জন্য বেশ কয়েকটি স্বতন্ত্র অ্যাপ্লিকেশন থাকতে পারে (ডাটাবেস শেল দিয়ে সরাসরি কাজ করা লোকদের উল্লেখ না করে)। এটি নিশ্চিত হওয়ার কোনও উপায় নেই যে সমস্ত অ্যাপ্লিকেশনগুলি সর্বদা এবং চিরকালের জন্য বাগ ছাড়া একই অনুমানগুলি অনুসরণ করে।
যদি সীমাবদ্ধতাগুলি ডাটাবেসে এনকোড করা থাকে, তবে বাগগুলির মধ্যে সবচেয়ে খারাপটি ঘটতে পারে তা হ'ল কিছু এসকিউএল সীমাবদ্ধতা সম্পর্কে সন্তুষ্ট ত্রুটি বার্তাটি ব্যবহারকারীকে দেখানো হয় । এটা অনেকআপনার এন্টারপ্রাইজ ডেটাবেসে কর্কট ডেটা দেওয়ার পক্ষে পছন্দনীয়, যেখানে এটি আপনার সমস্ত অ্যাপ্লিকেশনগুলি ভেঙে দেবে বা কেবল সব ধরণের ভুল বা বিভ্রান্তিকর আউটপুট নিয়ে যাবে।
ওহ, এবং বিদেশী কী সীমাবদ্ধতাগুলি কার্যকারিতাও উন্নত করে কারণ তারা ডিফল্ট অনুসারে সূচিযুক্ত হয়। বিদেশী কী সীমাবদ্ধতাগুলি ব্যবহার না করার কোনও কারণ আমি ভাবতে পারি না ।