以下のSQLを見てください。
create table DatasetToID(
Dataset varchar(100),
ID INT,
Name varchar(100),
age varchar(100),
primary key (dataset,id)
)
INSERT INTO DatasetToID VALUES ('Sales', 1, 'Ian Ratkin','30')
INSERT INTO DatasetToID VALUES ('Finance', 1, 'Bert Edwards','56')
INSERT INTO DatasetToID VALUES ('Production', 1, 'Marie Edwards','56')
INSERT INTO DatasetToID VALUES ('Sales', 2, 'Karen Bromley','30')
INSERT INTO DatasetToID VALUES ('Finance', 2, 'Steven Tardy','56')
INSERT INTO DatasetToID VALUES ('Production', 2, 'Eric Bishop','56')
create table Deletion(
Dataset varchar(100),
ID INT, decision bit,
date datetime
)
INSERT INTO Deletion VALUES ('Sales', 1, 1, '2013-01-01')
INSERT INTO Deletion VALUES ('Finance', 2, 1, '2013-01-01')
INSERT INTO Deletion VALUES ('Sales', 1, 0, '2013-02-02')
私がサポートするライブ システムは、このように設計されています。最新の削除決定 (ビット) が true の場合、毎月末に DatasetToID および Deletion からレコードが削除されます。上記の場合、Finance,2 は削除されますが、Sales,1 は最新の決定が 0 (false) であるため削除されません。
これは非常に貧弱な設計だと思います。Dataset と ID は、DatasetToID ではなく、別のテーブルにある必要があると思います。元の開発者は、去る前に同意しなかったようです。私が間違っている場合、私はさまよっています。