0

mysqlでレコードを更新し、それでもレコードの以前の(更新前の)データを保持し、更新履歴カウンターを保持できる方法があるかどうかを調べたいと思います。

最後に更新されたレコードを実際のレコードとして使用できるはずです。

感謝します。

ありがとう。

4

1 に答える 1

2

レコードを更新する必要はないと思いますが、代わりに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');
于 2012-09-24T08:16:28.970 に答える