Avatar
0
quangnguyen Beginner
quangnguyen Beginner
Java - Thắc mắc về việc delete các record có nhiều relationship.
Chào anh Dũng và mọi người,

Em có một thắc mắc trong việc xóa các entity ở trong springboot khi mà mối quan hệ của chúng rằng buộc với nhau nhiều, vậy có hướng nào giải quyết việc delete này không (dùng cách sử dụng biến để active/deactive hoặc xóa con trước rồi cha). Em có sử dụng cascade nhưng nó chỉ đúng với TH liên kết không quá nhiều (không biết có phải do em chưa sử dụng đúng, mong mọi người thông cảm). Thì để rõ hơn em sẽ tả mối quan hệ:

Thì có 4 bảng Bill, Payment, Patient và Appoinment. Thì Bill 1 - n Payment n - 1 Patient. Còn bảng Appointment n - 1 Patient. Bill còn 1 - 1 và chứa khóa ngoại của Appointment . Mô tả cho Payment (paymentID, billID, patientID, paymentMethod, ...). Vậy Khi em xóa Bill thì sẽ rất khó vì có rằng buộc tới các bảng còn lại. Vậy ngoài việc các cách để xóa em muốn hỏi. Em muốn hỏi thêm cách xây dựng các liên kết table như thế nào cho phù hợp với việc delete.

Bài hơi lủng củng, mong anh giải đáp. Em cảm ơn.

  • Answer
question
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
Khi thực tế đi làm thì chẳng bao giờ có việc em đi tạo các liên kết khoá ngoại giữa các bảng em ạ, và cũng chẳng bao giờ em đi xoá dữ liệu cả. Vì sao vậy?

  1. Việc tạo liên kết khó ngoại chỉ là phức tạp thêm vấn đề, thậm chí sẽ gây ra việc giảm hiệu năng do mỗi lần insert hay update là các database sẽ phải đi kiểm tra liên kết
  2. Dự liệu nào cũng quý giá và đều mang 1 ý nghĩa nào đó ở tương lai nên rất hiếm khi chúng ta xoá đi, thêm vào nữa việc cho phép xoá dữ liệu cũng rất nguy hiểm, nếu tài khoản database đó bị tấn công nó sẽ gây ra nguy cơ mất toàn bộ dữ liệu
  • 2
  • Reply
Vâng anh. Em cảm ơn ^^  –  quangnguyen 1630113118000