追加/編集/削除されたメモを追跡する SQL テーブルを作成したいと考えています。NOTEID
現時点でのそれぞれの状態を表に表示し、選択したメモの変更のログを表示し、特定の でマークされたすべてのメモを削除できるようにしたいと考えていNOTEID
ます。
create table[dbo].[NOTES]{
NOTEID [varchar](128) NOT NULL,
CREATEDBY [varchar](128) NOT NULL, /*is this redundant?*/
TIMECREATED DATE NOT NULL, /*is this redundant?*/
MODIFIEDBY [varchar](128) NOT NULL,
TIMEMODIFIED DATE NOT NULL,
NOTE [VARCHAR}(2000) NULL,
PRIMARY KEY ( /* undecided */ ),
};
このテーブルを作る自然な方法は何ですか? プライマリ ID を自動生成する必要がありますか、それとも ( NOTEID
, TIMEMODIFIED
) をプライマリ キーとして使用する必要がありますか? どのようなフールプルーフ保護を追加する必要がありますか?
「メモ履歴」ウィンドウにすべてのメモを表示できるようにしたいと考えています。したがって、作成された 3 日前のメモ、2 日前のメモ、および変更された今日のメモを保存する必要があります。
ただし、「メモ」テーブルには、各 NOTEID の最終状態が表示されます。あれは
SELECT NOTE from NOTES where NOTEID = 'selected_note_id' and date = latest