কয়েক বছর পরে, এখনও প্রশ্নটি গুরুত্বপূর্ণ ...
আমার জন্য সরল নিয়মের থাম্ব: এটি যদি কোনও যৌক্তিক বাধা বা সর্বব্যাপী প্রকাশ (একক বিবৃতি) হয় তবে এটি ডাটাবেসে রাখুন (হ্যাঁ, বিদেশী কী এবং চেক সীমাবদ্ধতাগুলিও ব্যবসায়ের যুক্তি are যদি এটি পদ্ধতিগত হয় তবে লুপ এবং শর্তসাপেক্ষ শাখা (এবং সত্যই কোনও অভিব্যক্তিতে রূপান্তরিত করা যায় না) দ্বারা কোডে রেখে দিন put
ট্র্যাশ ডাম্প ডিবি এড়িয়ে চলুন
অ্যাপ্লিকেশন কোডে সমস্ত ব্যবসায়ের যুক্তি স্থাপনের চেষ্টাগুলি সম্ভবত (সম্পর্কিত) ডাটাবেসটিকে একটি আবর্জনা ডাম্পে হ্রাস করে দেবে, যেখানে সম্পর্কের নকশাটি বেশিরভাগভাবে সম্পূর্ণ বাদ দেওয়া যায়, যেখানে ডেটাতে কোনও অসামঞ্জস্যপূর্ণ অবস্থা থাকতে পারে এবং স্বাভাবিকীকরণ অনুপস্থিত (প্রায়শই মূলত এক্সএমএল, জেএসএন) , সিএসভি ইত্যাদি ট্র্যাশবিন কলাম)।
এই ধরণের অ্যাপ্লিকেশন-কেবল যুক্তিটিই সম্ভবত নোএসকিউএল উত্থানের অন্যতম প্রধান কারণ - অবশ্যই এই ক্ষয়ক্ষতির সাথে যে অ্যাপ্লিকেশনটি সমস্ত যুক্তির নিজেই যত্ন নিতে হবে, যেগুলি কয়েক দশক ধরে রিলেশনাল ডিবিতে তৈরি হয়েছিল। যাইহোক, নোএসকিউএল ডাটাবেসগুলি এই জাতীয় ডেটা হ্যান্ডলিংয়ের জন্য আরও উপযুক্ত, উদাহরণস্বরূপ, ডেটা ডকুমেন্টগুলি নিজের মধ্যে একটি অন্তর্নিহিত "সম্পর্কযুক্ত অখণ্ডতা" বজায় রাখে। রিলেশনাল ডিবিগুলির জন্য, এটি কেবল অপব্যবহার, আরও বেশি সমস্যার সৃষ্টি করে।
পদ্ধতিগত কোডের পরিবর্তে এক্সপ্রেশন (সেট-ভিত্তিক)
সর্বোত্তম ক্ষেত্রে, প্রতিটি ডেটা ক্যোয়ারী বা অপারেশন প্রক্রিয়াগত কোডের পরিবর্তে একটি অভিব্যক্তি হিসাবে কোড করা উচিত should প্রোগ্রামিং ভাষাগুলি যখন .NET বিশ্বে LINQ এর মত এক্সপ্রেশন সমর্থন করে (দুর্ভাগ্যক্রমে, বর্তমানে কেবল অনুসন্ধানগুলি নেই, কোনও হেরফের নেই) এর জন্য দুর্দান্ত সমর্থন। রিলেশনাল ডিবি পক্ষটিতে, প্রসেসরিয়াল কার্সার লুপগুলির চেয়ে এসকিউএল স্টেটমেন্ট এক্সপ্রেশনকে পছন্দ করতে এটি দীর্ঘ সময় ধরে শেখানো হচ্ছে। সুতরাং ডিবি অপ্টিমাইজ করতে পারে, অপারেশনকে সমান্তরাল করতে পারে বা যা কার্যকর হতে পারে।
ডিবি ডেটা অখণ্ডতা প্রক্রিয়া ব্যবহার করুন
বিদেশী কী এবং চেক সীমাবদ্ধতা, গণনাকৃত কলাম, সম্ভবত ট্রিগার এবং দর্শনগুলি নিয়ে যখন আরডিবিএমএস আসে তখন এটি ডাটাবেসে বেসিক ব্যবসার যুক্তি সংরক্ষণ করার জায়গা। সঠিক স্বাভাবিককরণ ডেটাটির অনন্যতা এবং স্বতন্ত্র উদাহরণটি নিশ্চিত করতে, ডেটা অখণ্ডতা বজায় রাখতে সহায়তা করে। এমনকি যদি আপনাকে কোড এবং ডিবিতে এটির নকল করতে হয় তবে ডেটা অখণ্ডতার এই প্রাথমিক প্রক্রিয়াগুলি বাদ দেওয়া উচিত নয়!
সঞ্চিত পদ্ধতি?
সঞ্চিত পদ্ধতিগুলি আজকাল খুব কমই প্রয়োজন হয়, যেহেতু ডাটাবেসগুলি এসকিউএল-র জন্য কার্যকর সম্পাদনের পরিকল্পনাগুলি সংকলিত রাখে এবং একই কোয়েরিটি আবার উপস্থিত হলে তাদের পুনরায় ব্যবহার করুন, কেবলমাত্র বিভিন্ন পরামিতি দিয়ে। সুতরাং এসপিদের জন্য পূর্বনির্ধারিত যুক্তি আর বৈধ নয়। কেউ অ্যাপ্লিকেশন বা ওআরএম-এ এসকিউএল কোয়েরিগুলি সঞ্চয় বা স্বয়ংক্রিয়ভাবে উত্পন্ন করতে পারে, যা বেশিরভাগ সময় পূর্বনির্ধারিত ক্যোয়ারী পরিকল্পনাগুলি খুঁজে পাবে। এসকিউএল হ'ল একটি এক্সপ্রেশন ভাষা, যতক্ষণ না আপনি স্পষ্টভাবে পদ্ধতিগত উপাদান ব্যবহার করবেন না। সুতরাং, সর্বোত্তম ক্ষেত্রে, আপনি কোড এক্সপ্রেশন ব্যবহার করেন যা এসকিউএল অনুবাদ করা যেতে পারে।
ওআরএম উত্পন্ন, এসকিউএল সহ অ্যাপ্লিকেশন সাইডটি স্টোরেজ পদ্ধতিগুলির বিপরীতে আর ডাটাবেসের অভ্যন্তরে নেই, আমি এখনও এটি ডাটাবেস কোড হিসাবে গণনা করি। কারণ এটির জন্য এখনও এসকিউএল এবং ডাটাবেস জ্ঞান প্রয়োজন (সর্বাধিক সাধারণ সিআরইউডি ব্যতীত), এবং, যদি সঠিকভাবে প্রয়োগ করা হয় তবে সাধারণত সি # বা জাভার মতো প্রোগ্রামিং ভাষার সাথে তৈরি প্রসেসরিজ কোডের চেয়ে অনেক বেশি আলাদাভাবে কাজ করে।