我得到一個系統,該系統有一張表格來跟蹤客戶數據變化的每週變化。每週的記錄都會創建一個帶有customer_id和相關聯的action_id的新file_id編號,這將是一個更新'U'。它有以下主鍵。刪除主鍵最佳實踐
ALTER TABLE t_customer_file
ADD CONSTRAINT CUSTF_PK PRIMARY KEY (file_id, customer_id, action_id);
現在需要更改,以便客戶更新可以在一週內出現兩次。因此,file_id,customer_id和action_id將相同,因此主鍵無法使包填充此表。
所以我只是想知道最好的做法是去除和引入新的主鍵或沒有主鍵?
此刻我已經丟棄了主鍵。然後我用一個索引代替同名的相同字段。我會用更多的列創建一個新的主鍵,但表中只有5個列,每個列只包含已更新內容的數據。以下是我執行的重複行,並編譯了一個使用t_customer_file
中的數據的視圖。
alter table t_customer_file
drop constraint CUSTF_PK
drop index;
create index CUSTF_PK on t_customer_file (file_id,customer_id,action_id);
alter view customer_file compile;
對這種情況下的最佳實踐的任何幫助將是偉大的。
聽起來你應該創建另一列,比如'change_date',它包含發生更改的日期。然後讓你的主鍵'file_id,customer_id,action_id,change_date'如果你每週有兩次更改,現在你不知道你最先發生了哪一次? –
@ElectricLlama:時間戳可能比日期還要好。 –
很可能。我會留下原始的海報來反思。 –