mysqlでレコードを更新し、それでもレコードの以前の(更新前の)データを保持し、更新履歴カウンターを保持できる方法があるかどうかを調べたいと思います。
最後に更新されたレコードを実際のレコードとして使用できるはずです。
感謝します。
ありがとう。
mysqlでレコードを更新し、それでもレコードの以前の(更新前の)データを保持し、更新履歴カウンターを保持できる方法があるかどうかを調べたいと思います。
最後に更新されたレコードを実際のレコードとして使用できるはずです。
感謝します。
ありがとう。
レコードを更新する必要はないと思いますが、代わりにInsert
別のレコードを更新して、以前のレコードが変更されないようにします。
更新1
このために2つのテーブルを作成する必要があります。1つ目はdata
レコードで、もう1つは変更を保持するテーブルです。例、
CREATE TABLE dataList
(
ID INT NOT NULL,
Name VARCHAR(30),
-- other fields... ,
CONSTRAINT dl_pk PRIMARY KEY ID)
);
CREATE TABLE versionList
(
ID INT AUTO_INCREMENT,
DataID INT,
VersionID INT,
DateChanged datetime,
CONSTRAINT vl_pk PRIMARY KEY (ID),
CONSTRAINT vl_fk FOREIGN KEY (DataID)
REFERENCES dataList(ID)
);
INSERT INTO dataList(ID, Name) VALUES (1,'hello');
INSERT INTO dataList(ID, Name) VALUES (2,'world');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (1,1,'2011-01-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (1,2,'2011-02-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (1,3,'2011-03-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (2,1,'2012-01-01');
INSERT INTO versionList(DataID, VersionID, DateChanged) VALUES (2,2,'2012-02-01');