আজ আমি একই ডাটাবেস প্যাটার্ন তিনবার লক্ষ্য করেছি

আজ আমার কোডে আমি একই ধরণের ডাটাবেস স্ট্রাকচার তিনবার দেখেছি।

প্রথমে, আমি এটি ফি (fees)-এর ক্ষেত্রে দেখেছি।

  • Fee (প্যারেন্ট: একটি ক্লাস যা বকেয়া রেখেছে)
  • FeePayment (চাইল্ড: প্রতিটি আলাদা পেমেন্ট)

তারপর, আমি এটি অ্যাসেসমেন্ট (assessments)-এর ক্ষেত্রে দেখেছি।

  • Assessment (প্যারেন্ট: কুইজের বিবরণ, তারিখ এবং সর্বোচ্চ স্কোর)
  • AssessmentResult (চাইল্ড: প্রতিটি শিক্ষার্থীর স্কোর)

এই স্ট্রাকচারটি সাধারণ ভুলগুলো প্রতিরোধ করে।

আপনি যদি প্যারেন্ট-চাইল্ড প্যাটার্ন ব্যবহার না করেন, তবে আপনি এই সমস্যাগুলোর সম্মুখীন হবেন:

  • আপনি ডেটা পুনরাবৃত্তি করেন। প্রতিটি শিক্ষার্থীর রো (row)-এর জন্য আপনি বিষয় এবং তারিখ কপি করেন।
  • আপনি বিভ্রান্তি তৈরি করেন। কোন রো-গুলো একটি নির্দিষ্ট ইভেন্টের অন্তর্গত তা বোঝা কঠিন হয়ে পড়ে।
  • আপনি টেবিল অগোছালো করে ফেলেন। আপনি হেডার ডেটা শিক্ষার্থীর রো-তে রাখেন যেখানে তা থাকা উচিত নয়।

সময়ের সাথে সাথে প্যাটার্ন চেনার ক্ষমতা বাড়ে।

প্রথমবার যখন আপনি একটি স্ট্রাকচারাল সমস্যা সমাধান করেন, তখন এটি একটি একক সমাধান মাত্র। দ্বিতীয়বার যখন আপনি এটি দেখেন, তখন আপনি একটি প্যাটার্ন চিনতে পারেন। তৃতীয়বার, আপনি সমস্যাটি হওয়ার আগেই সেটি ব্যবহার করেন।

আমি এখনও এজ কেস (edge cases) তৈরি এবং পরীক্ষা করছি। আমি এখনও শিখছি।

Source: https://dev.to/johnstonkweku/i-spotted-the-same-database-design-pattern-three-times-in-my-own-code-today-4e4d