Transaction
父子記錄 - 級聯刪除或事務?
我即將創建一個父子表。在計劃如何對這些數據進行 CRUD 操作時,我想知道在刪除數據時有什麼更好的設計。
我正在使用 SQLite。我知道對於許多數據庫,您可以設置級聯刪除。假設我正確設置了關係以支持這種類型的功能,我的問題如下:
刪除父記錄時使用級聯刪除功能更好,還是我可以堅持使用事務,並自己手動從父/子表中刪除,當出現故障時回滾?
前端是一個 Web 應用程序。您可以指出我的任何建議/文章都會很棒。
這取決於數據的需求,也是一種設計偏好。擁有
CASCADE ON DELETE
可以是一個更清晰的實現並更好地描述數據的關係。本文介紹的研究表明,
CASCADE ON DELETE
與 SQLite 中的直接刪除相比,實際上性能略有下降。但是,除非您的負載始終很高,否則這應該不是問題。Database Speedup CPU decrease MySQL 45% 25% Oracle 28% 11% PostgreSQL 56% 55% SQL Server 17% 22% SQLite -11% -75%
http://www.codesynthesis.com/~boris/blog/2012/04/12/explicit-sql-delete-vs-on-delete-cascade/