𝗛𝗼̂𝗺 𝗻𝗮𝘆, 𝘁ô𝗶 đ𝗮̃ 𝗯𝗮̆́𝘁 𝗴𝗮̣̆𝗽 𝗰𝘂̀𝗻𝗴 𝗺𝗼̣̂𝘁 𝗺𝗼̂ 𝗵𝗶̀𝗻𝗵 𝗰𝗼̛ 𝘀𝗼̛̉ đ𝗮́𝘁𝗮 𝗯𝗮̆𝗻𝗴 𝘁𝗵𝗲̂́ 𝘁𝗵𝗮̂̀𝘆 𝘁𝗵𝗶́𝗰𝗵 𝘁𝗿𝗲̂𝗻

Hôm nay, tôi đã thấy cùng một cấu trúc cơ sở dữ liệu ba lần trong mã nguồn của mình.

Đầu tiên, tôi thấy nó với các khoản phí.

  • Fee (phần tử cha: những gì một lớp đang nợ)
  • FeePayment (phần tử con: mỗi khoản thanh toán riêng lẻ)

Sau đó, tôi thấy nó với các bài kiểm tra.

  • Assessment (phần tử cha: chi tiết bài kiểm tra, ngày tháng và điểm tối đa)
  • AssessmentResult (phần tử con: điểm của mỗi học sinh)

Cấu trúc này giúp ngăn chặn các lỗi phổ biến.

Nếu bạn không sử dụng mô hình cha-con, bạn sẽ gặp phải những vấn đề sau:

  • Bạn lặp lại dữ liệu. Bạn phải sao chép môn học và ngày tháng cho mỗi dòng học sinh.
  • Bạn tạo ra sự nhầm lẫn. Rất khó để biết những dòng nào thuộc về cùng một sự kiện.
  • Bạn làm rối các bảng. Bạn đưa dữ liệu tiêu đề vào các dòng học sinh, nơi mà chúng không thuộc về.

Khả năng nhận diện mô hình sẽ tăng dần theo thời gian.

Lần đầu tiên bạn sửa một vấn đề về cấu trúc, đó chỉ là một lần sửa lỗi đơn lẻ. Lần thứ hai bạn thấy nó, bạn nhận ra một mô hình. Lần thứ ba, bạn áp dụng nó trước khi gặp phải vấn đề.

Tôi vẫn đang xây dựng và kiểm thử các trường hợp biên (edge cases). Tôi vẫn đang học hỏi.

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