2009-03-05 44 views
0

理想情況下,我會在表中有一個「isActive」字段以指示記錄是否處於活動狀態,但它會涉及多個存儲過程中的更改以使該字段完成它意味着要做。快速和骯髒的方式禁用特定的外鍵

我想出了一個骯髒的詭計,並有種想要實現它。由於結果集由少數連接生成,所以我想通過附加一個「*」,「x」或任何通常不會在關鍵字中結束的符號來稍微改變其中一個表中的外鍵。

有什麼我應該害怕的嗎?

回答

3

在不更改所有其他存儲過程的情況下生成「未激活」狀態的一種方法是在記錄未激活時將記錄移動到「非激活」表。

+0

我其實很喜歡這個想法:)但是最終你會得到很多鏡像表來達到這個目的。儘管如此,它仍然很光滑。 – Haoest 2009-03-05 19:14:53

1

有什麼我應該害怕的嗎?

由於附加特殊字符問題導致數據不一致,導致數據不可讀,導致數據不一致?

如果這個問題稍後再出現,我認爲是重構存儲過程或表的時候了。

1

你的意思是進入數據庫並手動添加一個字符到特定的行來禁用單個客戶或其他?

連接怎麼樣?您可以暫時添加... AND CustomerId NOT IN(1234,...)到WHERE子句嗎?

我不認爲你應該開始搞這樣的數據,即使參照完整性允許你。

相關問題