না, আপনাকে বৈধতা দেওয়ার জন্য কখনই ট্রিগার ব্যবহার করা উচিত নয়।
ডাটাবেসটি কেবল তার নিজস্ব অখণ্ডতার জন্য দায়ী। বৈধতার মুখোমুখি যে কোনও ব্যবহারকারীর আপনার অ্যাপ্লিকেশন দ্বারা সঞ্চালন করা উচিত।
ডেটাবেসগুলি অখণ্ডতার জন্য বৈধতার তিনটি স্তর সম্পাদন করে। প্রথমটি হ'ল মাঠ পর্যায়ের বৈধতা। একটি ক্ষেত্র প্রয়োজন হতে পারে, যদি মান (নাল) না থাকে তবে এটি ত্রুটি। এটি একটি চেক সীমাবদ্ধতাও হতে পারে; একটি ডোমেনের একটি সংখ্যা গণনা করা হয়।
দ্বিতীয়ত টেবিলের মধ্যে সম্পর্ক রয়েছে। একটি টেবিলের মধ্যে আপনি এক বা একাধিক বিদেশী কী সঞ্চয় করেন, অন্য টেবিলের সাথে এই টেবিলটি সম্পর্কিত এবং "অন্যান্য টেবিলের" জন্য বৈধ কী হিসাবে মানগুলি প্রয়োজন। এমন একটি ঠিকানা ডাটাবেসের কথা চিন্তা করুন, যেখানে আমরা বিভিন্ন দেশের ঠিকানাগুলিকে সমর্থন করি। কোনও ঠিকানার একটি দেশের কী অবশ্যই একটি পরিচিত দেশকে নির্দেশ করবে। ডেটা (যেমন একটি পোস্টাল কোড) বৈধ কিনা তা এই অখণ্ডতা পরীক্ষার জন্য উদ্বেগ নয়।
তৃতীয়ত এবং সবচেয়ে জটিল ট্রিগার। একটি সাধারণ নিয়ম হিসাবে এগুলি সম্বোধন করা উচিত (পাং উদ্দেশ্য নয়) শর্তাধীন যে সততা নিয়মের সাথে সম্পর্কিত। ঠিকানার উদাহরণে ফিরে আসার জন্য: যদি কোনও দেশের পোস্টাল কোড না থাকে তবে এই তালিকার কোনও দেশের একটি পোস্টাল কোড থাকলে সমস্যা হবে। সুতরাং চেকটি হবে: যদি এই দেশে পোস্টাল কোড না থাকে তবে ডাক কোড ক্ষেত্রটি শূন্য হওয়া উচিত।
বৈধকরণ অ্যাপ্লিকেশন উদ্বেগ। যে কোনও জার্মান ডাক কোডটি কেবলমাত্র সংখ্যার সমন্বয়ে গঠিত তা অ্যাপ্লিকেশনটিকে চেক করা উচিত, ডাটাবেস নয়। লাইনটি একটি পাতলা, সুতরাং আপনার যদি কিছু ট্রিগার (আপনার ডাটাবেসের অখণ্ডতা রক্ষা করতে হবে) বা অ্যাপ্লিকেশনটিতে (ব্যবহারকারী যাচাইয়ের মুখোমুখি) হতে পারে তবে কিছু ক্ষেত্রে আপনার কিছু চিন্তাভাবনা / আলোচনা করার প্রয়োজন হতে পারে।
However, why not perform validation of data on the application side before storing them into the database?
ভাল, এই দুটি পারস্পরিক একচেটিয়া নয়। সম্ভবত আপনি উভয় পক্ষের বিভিন্ন জিনিসকে বৈধতা দেবেন। অ্যাপ্লিকেশন পক্ষের বৈধতা ব্যবসায়িক কেন্দ্রিক হলেও, ডাটাবেসের বৈধতাগুলি ডেটা-কেন্দ্রিক বেশি। বিভিন্ন এবং বিভিন্ন অ্যাপ্লিকেশন দ্বারা খাওয়ানো একটি ডাটাবেস ভাবেন।