আমি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এবং (বেশিরভাগ লেনদেনমূলক, তবে কিছু ওএলএপি) ডাটাবেস ডিজাইন এবং আমার পরিস্থিতিতে, অনেকগুলি পুনরাবৃত্ত থিম রয়েছে (কমপক্ষে ওএলটিপি সহ)।
3nf স্বাভাবিককরণের অনুশীলন আমাকে একক দায়িত্বের নীতিটির কিছু বৈকল্পিক অনুশীলন করতে সহায়তা করে। একটি সারণী আপনার সিস্টেমে একটি ধারণার প্রতিনিধিত্ব করবে - এবং ধারণাগুলি একে অপরের সাথে সম্পর্কিত হওয়া উচিত যা তারা বাস্তবের অনুকরণ করার চেষ্টা করে; উদাহরণস্বরূপ, আমি যদি এমন একটি সিস্টেম তৈরি করি যেখানে কোনও গ্রাহকের 0 বা অনেকগুলি ক্রিয়াকলাপ থাকতে পারে তবে আমি একটি গ্রাহক টেবিল এবং একটি কার্যকলাপ সারণী তৈরি করি। ক্রিয়াকলাপ সারণীর গ্রাহক টেবিলের সাথে একটি বিদেশী কী সম্পর্ক রয়েছে। যখন আমি সঞ্চিত পদ্ধতিগুলি তৈরি করছি, আমি গ্রাহক এবং ক্রিয়াকলাপে যোগদানের জন্য একটি বাহ্যিক জোড় ব্যবহার করা নিশ্চিত করবো কারণ যে কোনও ব্যবসায়ের প্রয়োজনীয়তার যে কোনও গ্রাহকের 0 টি ক্রিয়াকলাপ থাকতে পারে।
ব্রিজ (লিঙ্ক) সারণী ব্যবহার করে এক্সটেনসিবিলিটির সুযোগগুলিও লক্ষ্য করি। উদাহরণস্বরূপ, যদি আমি এমন কোনও ব্যবসায়ের নিয়ম উপস্থাপনের চেষ্টা করছি যেখানে একটি বইয়ের লেখক সীমাহীন (পরিবর্তনশীল) সংখ্যক থাকতে পারে, আমি একটি বুক টেবিল, একটি লেখক সারণী এবং একটি সেতু / লিঙ্ক টেবিল তৈরি করব যা উভয়ের বিদেশী কী উল্লেখ আছে বই এবং লেখক।
এছাড়াও, আমি সমস্ত টেবিলগুলিতে সার্গেট কীগুলি ব্যবহার করি (সাধারণত স্বতঃবৃদ্ধকরণকারী পরিচয় কলামগুলি, তবে সম্ভবত গাইডগুলি - কোডগুলিতে গাইডগুলির সাথে ট্রেড অফটি হ'ল তারা একটি সাধারণ পূর্ণসংখ্যার চেয়ে বেশি মেমরির জায়গা নেয়) এবং আমি আমার প্রাকৃতিক কীগুলিতে নির্ভর করা এড়াতে পারি অনুসন্ধান (ব্রিজ / লিংক টেবিলগুলি বাদে) ডিফল্টরূপে, আমি সাধারণ বিদেশী কী কলামগুলিতে সূচকগুলিও তৈরি করি এবং সূচি কৌশলগুলি অনুকূলকরণের জন্য সময়ে সময়ে সময়ে সঞ্চিত পদ্ধতি / সিস্টেম কোয়েরি পর্যালোচনা করি। আমি যে অন্য সূচক কৌশলটি ব্যবহার করি তা হ'ল আমার কোডে এমন জায়গাগুলি সন্ধান করা যেখানে আমি অনুসন্ধান কলামের উপর ভিত্তি করে সংগ্রহ তৈরি করি এবং কলামগুলিতে অনুসন্ধানের জন্য উপযুক্ত সূচিপত্র যুক্ত করি।