2012-08-04 59 views
0

我正在創建一個數據庫來存儲用戶信息,並且對用戶所做的更改將需要記錄。僅限MS DateTime日誌表

這最終會導致一種'時間軸',所以日期/時間因素是至關重要的。

對於這個問題,我會用下面的例子:

#ID - int 
memName - string 
memBio - string 
memStatusString - string 

現在,我雖然是鏈接到一個表作爲這樣的:

ID - int 
#memID - int 
dateNameChanged - DateTime 
dateBioChanged - DateTime 
dateStatusStringChanged - DateTime 

這是一個很好的記錄信息的方式?我想在不同的桌子上做,以便日後能夠輕鬆地列出。

另外,我從不將日誌記錄放在同一個表中,因爲日誌日期只會在更改後纔會發生。如果用戶永遠不會改變,那隻會浪費空間。

總之;

有沒有更好的方法來做到這一點?

更新:我對缺乏信息表示歉意。 我正在使用SQL Server 2008,ASP NET C#3.5 - 4(只做數據庫結構atm)。

而且,構件將具有不同的表,如tblMemberInformation,tblClanInformation,tblMemberGameRank

每個改變的數據(只是爲了確認)在每個表中的將需要被存儲到日誌文件中,其中相應的日期。

+0

您使用的是哪個版本的SQL Server? – Oded 2012-08-04 11:05:28

+0

你只想記錄什麼時候發生了變化?不是更改的值(即'bioChangedFrom')? – Oded 2012-08-04 11:07:23

+0

它需要記錄已更改的項目以及從 - >更改的項目。 這是要[用戶更改名稱爲derp] - 2012年5月3日 – TheGeekZn 2012-08-04 11:42:07

回答

1

您還沒有指定您正在使用的SQL Server版本,因此我將假定最新版本。 2008+已建成audit

SQL服務器:

審計SQL Server數據庫引擎實例或單獨的數據庫涉及到對數據庫引擎中發生的追蹤和記錄事件。通過SQL Server審計,您可以創建服務器審計,其中可以包含服務器級別事件的服務器審計規範,以及數據庫級別事件的數據庫審計規範。審計事件可以寫入事件日誌或審計文件。

+0

感謝您的信息,但據我所知,審計功能將只適用於數據庫,而不是單個表。此外,我只需要跟蹤選擇的變化,而不是一切。 :D – TheGeekZn 2012-08-04 11:39:28

+0

@NewAmbition - 我相信你錯了。您可以指定要審覈的表格。請參閱[這裏](http://msdn.microsoft.com/en-us/library/dd392015.aspx)。 – Oded 2012-08-04 11:46:50

+0

我可以看到審計功能的過程。謝謝你。我不是DBA,直到現在我還沒有聽說過審計功能(再次感謝),但是我發現它將它寫入光盤上的單獨審計文件中......這不會花費更長時間來讀取/ wright嗎?我從編程時間開始就只學會了讀取/寫入數據庫。 – TheGeekZn 2012-08-04 11:53:58