Chỉ cần cố gắng để có được một số ý tưởng về những gì mọi người làm cho kịch bản này. Chúng tôi có cơ sở dữ liệu hệ thống (SQL Server 2008 R2) có các bảng và mỗi bảng có một trường mà chúng tôi có thể gọi là "Đã xóa". Về cơ bản, đó là trường bit nếu bản ghi 1 bị xóa, nếu là 0 thì không bị xóa. Trường này là nullable và mặc định của nó là 0.
Chúng tôi không thể cho phép xóa thực sự vào cơ sở dữ liệu, vì vậy để giải quyết vấn đề này, chúng tôi đặt trường bit (Đã xóa) thành đúng. Trong ứng dụng của chúng tôi, chúng tôi kết thúc với các truy vấn trông như thế này:
SELECT blah FROM MyTable WHERE .. AND Deleted=0
Về cơ bản chúng tôi lọc các bản ghi để chúng tôi chỉ nhận được các hàng không bị xóa. Vấn đề của chúng tôi là hồ sơ liên quan cần xếp tầng. Mọi người thích gì hơn, chúng ta có nên làm điều này trong mã phía máy chủ để khi bạn xóa một bản ghi thì nó sẽ xóa (Đặt trường bit bị xóa thành đúng) cho tất cả các bản ghi liên quan? Hoặc đây có nên là một trình kích hoạt phải kiểm tra trường này và đặt trường bit cho tất cả các bản ghi liên quan thành 1 không?
Hay chúng ta hoàn toàn đi sai đường?