我想爲幾個表設計一個更新日誌。我們稱之爲表restaurant
。每次用戶修改餐館列表時,都應該記錄更改。更改日誌表
理念1
我的第一個想法是創建2個表。其中一個包含所有餐廳RESTAURANT_VALUE
(restaurantId*, restaurantValueId*, address, phone, ..., username, insertDate)
。每次進行更改時都會創建一個新條目。然後一個表RESTAURANT (restaurantId*, restaurantValueId)
,它將鏈接到當前有效的restaurantValueId
。所以有一張表包含當前和以前的版本。
思想2
它始於2代表爲好。其中一個包含所有當前餐館。例如RESTAURANT_CURRENT
。第二個表格包含所有更改RESTAURANT_HISTORY
。因此,兩者都需要有完全相同的列。每當發生更改時,「當前」表的值將被複制到歷史表中,而新版本將被複制到「當前」表中。
我的意見
想法一不關心,如果列將永遠不會加入與否,因此維護和列的加入很容易。但是,我認爲隨着數據庫的增長......它會不會放慢速度?想法2的優點是具有價值的桌子永遠不會有「舊」的東西,也不會擁擠。
從理論上講,我認爲思路1應該是一個做
有什麼看法。你會去看Idea 1還是其他的?還有沒有其他重要的實際想法我不知道?
噢好 - 謝謝!我們將有一個用於審計目的的歷史表。所以只要我們覺得有什麼問題。用戶可以打開我們的應用程序,它會顯示所有餐館。如果一個條目看起來不對,或者用戶想要找出誰創建了這個條目以及發生了什麼變化,他就能夠拉起一個歷史視圖,該視圖將顯示該餐廳最近的所有修改。此外,可能會有第二個「日誌視圖」,它將顯示網格視圖(日誌)中所有餐館的所有更改, – skofgar