亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除主鍵表的記錄的前提是不能影響外鍵表

如何刪除主鍵表的記錄的前提是不能影響外鍵表

MMTTMM 2018-12-06 11:25:42
怎樣刪除主鍵表的記錄卻不影響外見表相關內容,比如有2個表,分別為“員工表”和“消費明細表”,關聯。 員工表: ID-----員工姓名 1----- test1 2------test2 消費明細表: 單號--------------------項目--------------服務員工 201401011-----------action1---------------1 201401012-----------action2---------------2 因為員工變動夠大,每當有員工離職j時就要對“員工表”相關記錄進行刪除,但如果我在“員工表”中刪除一條記錄,那么“消費明細表”對應的記錄就會級聯刪除,或外鍵設為為null,無論怎樣“消費明細表”信息都受損。是否有合適的方法去解決這類問題,消費明細表如何永久保存?一些大型系統是如何做的?
查看完整描述

8 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

一般系統的數據都應該不會物理刪除的

都只是一個status而已。

比如你把員工表建一個Status字段,0代表在職,1代表離職。

這樣子表數據你都不用動的(當然在離職的時候。你也可以把子表的數據設置為無效:也同樣加一個status字段)

查看完整回答
反對 回復 2019-01-07
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

難得大叔中規中矩的回答一次問題啊, 頂一個

查看完整回答
反對 回復 2019-01-07
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

這種應該不能刪除的,設置一個狀態,離職 在職 實習 等等。

如果要刪除數據的話 應該加一個 邏輯刪除的 flag, 防止歷史數據刪除

查看完整回答
反對 回復 2019-01-07
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

1.給員工表加個狀態字段,標示 在職 還是 離職 不要做delete操作,只做update操作,你要的"刪除"其實改一下狀態即可。

2.關鍵數據庫表別搞外鍵什么的了,用代碼邏輯來控制

查看完整回答
反對 回復 2019-01-07
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

對于這種系統,不管是員工表還是消費明細表,都應該進行邏輯刪除。

查看完整回答
反對 回復 2019-01-07
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

從數據完整性上來講,“員工表”的記錄是不能刪除了,這會導致“消費明細表”記錄的描述不準確。抽象來說,當主表記錄被刪除后,從表記錄的存在將失去意義。

“消費明細表”記錄只是員工產生數據的一種方式,在該員工的工作期間,還會有社保信息、公積金信息和所做的項目信息,以及企業內部流程數據等等。一旦員工被真刪,以上所有信息將找不到“操作人”。

在任何系統里,“員工表”的記錄都不能被真刪,拓寬的講,進入了審核流程的業務數據也是不能真刪的(草稿類型的業務數據可以真刪)。

查看完整回答
反對 回復 2019-01-07
  • 8 回答
  • 0 關注
  • 754 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號