2011-12-21 33 views

回答

1

你有看起來像這樣的任何代碼:

int id = FindRecord(); 

if (id > 0) 
{ 
    Success(); 
} 
else 
{ 
    Failure(); 
} 

如果是這樣,你需要重構它。

+0

除了這個&incase我沒有像上面的東西什麼是真正強迫不使用負面id的其他重要原因,因爲有任何這樣的問題? – 2011-12-21 18:04:01

+2

這對我來說很重要。您存儲了多少條記錄,您已用完正整數?你能重構數據庫以使用更大的整數類型嗎? – 2011-12-21 18:05:39

3

我發現的一個缺點是如果你需要徘徊到性能領域。

我必須工作的一個系統必須根據ID進行大量的地圖查找。它正在看的地圖有4億多條目,並且有多張地圖。基於Integer鍵的映射是我開始的地方。然而,對於內存效率和速度,我最終切換到了索引是關鍵的數組。處理負數會抑制這一點。

如果您必須對ID進行任何Set數學運算,則任何類型的BitSet工作都有其他限制。

這就是說,這是一個相當狹窄的用例。