Sto solo cercando di ottenere alcune idee su ciò che le persone fanno per questo scenario. Abbiamo un database di sistema (SQL Server 2008 R2) con tabelle e ogni tabella ha un campo che possiamo chiamare "Eliminato". È fondamentalmente un campo bit se è 1 il record è cancellato, se è uno 0 non viene cancellato. Il campo non è annullabile e il suo valore predefinito è ovviamente 0.
Non possiamo permettere reali cancellazioni al database, quindi per aggirare questo impostiamo un campo bit (Eliminato) su true. Nella nostra applicazione ci ritroviamo con una query simile a questa:
SELECT blah FROM MyTable WHERE .. AND Deleted=0
Fondamentalmente filtriamo i record in modo da ottenere solo righe non cancellate. Il nostro problema sono i record correlati che devono essere sovrapposti. Cosa preferiscono le persone, dovremmo farlo nel codice lato server in modo che quando cancelli un record cancelli (imposta il campo bit cancellato su true) per tutti i record correlati? O dovrebbe essere un trigger che deve controllare questo campo e imposta il campo di bit per tutti i record correlati su 1?
O siamo completamente sulla strada sbagliata?