em đang làm chức năng edit trong crud, sử dụng eloquent laravel, và có xảy ra tình huống thế này:
có 2 bảng có quan hệ 1-n với nhau vd: A-B , 1-n
trong bảng B có 1 trường là id_A để tham chiếu đến bảng A
để cập nhật nhiều record vào 1 bảng B em nghĩ ra 2 cách:
-
cách 1: xóa hết record cũ theo 1 id_A, sau đó ghi record mới vào, cách này sẽ chạy 1 lệnh delete where id_A = $id_A , sau đó sẽ ghi record mới vào
-
cách 2: đầu tiên em select các record cũ có id_A = $id_A , sau đó em lọc ra các record thừa ( có trong cũ mà ko có trong mới), em xóa các record thừa này đi, sau đó ghi record mới vào
giả sử có trong db có 10 record cũ, và cần thay 10 record đó bằng 5 record, trong 5 record mới có 2 record trùng với 10 record cũ
theo cách 1: em sẽ xóa 10 record cũ , ghi 5 record mới
theo cách 2: em sẽ xóa 8 record cũ, ghi 3 record mới và update 2 record trùng
theo cách 1: em sẽ chạy 6 câu querry, 1 câu delete, 5 câu insert
theo cách 2: em sẽ chạy 7 câu querry,1 câu select, 1 câu delete, 3 câu insert, 2 câu update