我是數據庫設計新手,在嘗試設計一個時遇到問題。這裏是我的系統: 有3個不同的軟件(SW_A,SW_B,SW_C)和500-600個用戶。每個用戶都可以使用任何軟件並完成一些工作。每項工作都會發送到數據庫。每分鐘6次。 (隨機爲用戶和軟件) 我想要一個數據庫,以保持所有與用於歸檔的軟件相關的用戶操作,並且還想跟蹤與這些軟件相關的所有用戶的即時操作。 (每個軟件只針對不同用戶的最新動作)Oracle數據庫設計視圖或表?
所以我設計了一些東西。這樣的:
表:SW_X_DATA_ARCHIVE
色譜柱:
- 用戶ID
- Data_Date
- SW_A_ActionID
表:SW_X_INSTANT_DATA
山口UMNS:
- 用戶名
- Data_Date
- SW_X_ActionID
當一個新數據到來時,它更新INSTANT_DATA表的相關行,如果該用戶名存在,插入新行,用戶名和數據如果沒有。然後將相同的數據插入到DATA_ARCHIVE表中。
問題是:這種工作有更好的方法嗎?觀看也許? (我讀過某事關於物化視圖,但不知道如何在這裏使用它。) 感謝
物化視圖是否會幫助您或傷害您的問題取決於您將如何處理數據。如果幾乎所有的檢索都只涉及存儲在INSTANT_DATA中的項目,那麼你現在的設計可能是最好的。否則,你可能會更好地設計一個表,並且只爲每個用戶提供最新的行。這個觀點寫起來不容易,即使索引很好,也不會很快。 – 2013-02-21 11:39:12
謝謝沃爾特,我用這個設計沒有問題。 – Turker 2013-03-07 15:00:59