ഇന്ന് ഞാൻ ഒരേ ഡാറ്റാബേസ് പാറ്റേൺ മൂന്ന് തവണ കണ്ടു

ഇന്ന് എന്റെ കോഡിൽ ഒരേ ഡാറ്റാബേസ് ഘടന മൂന്ന് തവണ ഞാൻ കണ്ടു.

ആദ്യം, ഞാൻ ഇത് ഫീസുമായി (fees) ബന്ധപ്പെട്ട് കണ്ടു.

  • Fee (പേരന്റ്: ഒരു ക്ലാസ് നൽകാനുള്ള തുക)
  • FeePayment (ചൈൽഡ്: ഓരോ വ്യക്തിഗത പേയ്‌മെന്റും)

പിന്നീട്, ഞാൻ ഇത് അസസ്‌മെന്റുകളുമായി (assessments) ബന്ധപ്പെട്ട് കണ്ടു.

  • Assessment (പേരന്റ്: ക്വിസ് വിവരങ്ങൾ, തീയതി, പരമാവധി സ്കോർ എന്നിവ)
  • AssessmentResult (ചൈൽഡ്: ഓരോ വിദ്യാർത്ഥിയുടെയും സ്കോർ)

ഈ ഘടന സാധാരണ തെറ്റുകൾ ഒഴിവാക്കാൻ സഹായിക്കുന്നു.

നിങ്ങൾ ഒരു പേരന്റ്-ചൈൽഡ് പാറ്റേൺ ഉപയോഗിക്കുന്നില്ലെങ്കിൽ, താഴെ പറയുന്ന പ്രശ്നങ്ങൾ നേരിടേണ്ടി വരും:

  • നിങ്ങൾ ഡാറ്റ ആവർത്തിക്കുന്നു. ഓരോ വിദ്യാർത്ഥിയുടെയും വരികളിൽ (row) നിങ്ങൾ വിഷയം (subject), തീയതി എന്നിവ വീണ്ടും കോപ്പി ചെയ്യുന്നു.
  • ഇത് ആശയക്കുഴപ്പമുണ്ടാക്കുന്നു. ഏത് വരികൾ ഒരു ഇവന്റിലേക്ക് (event) ഉൾപ്പെടുന്നു എന്ന് തിരിച്ചറിയാൻ പ്രയാസമായിരിക്കും.
  • ഇത് ടേബിളുകൾ അനാവശ്യമായി നിറയാൻ കാരണമാകുന്നു. ഹെഡർ വിവരങ്ങൾ (header data) ഉൾപ്പെടാൻ പാടില്ലാത്ത വിദ്യാർത്ഥികളുടെ വരികളിൽ നിങ്ങൾ ചേർക്കുന്നു.

പാറ്റേണുകൾ തിരിച്ചറിയാനുള്ള കഴിവ് കാലക്രമേണ വർദ്ധിച്ചുവരുന്നു.

ആദ്യമായി ഒരു ഘടനാപരമായ പ്രശ്നം പരിഹരിക്കുമ്പോൾ, അത് ഒരു ഒറ്റപ്പെട്ട പരിഹാരമായിരിക്കും. രണ്ടാമത്തെ തവണ അത് കാണുമ്പോൾ, നിങ്ങൾ ഒരു പാറ്റേൺ തിരിച്ചറിയുന്നു. മൂന്നാമത്തെ തവണ, പ്രശ്നം നേരിടുന്നതിന് മുമ്പ് തന്നെ നിങ്ങൾ അത് ഉപയോഗിക്കുന്നു.

ഞാൻ ഇപ്പോഴും എഡ്ജ് കേസുകൾ (edge cases) നിർമ്മിക്കുകയും പരിശോധിക്കുകയും ചെയ്തുകൊണ്ടിരിക്കുകയാണ്. ഞാൻ ഇപ്പോഴും പഠിച്ചുകൊണ്ടിരിക്കുന്നു.

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