2013-09-29 16 views
0

在我設計數據庫之前,我想弄清楚如何最好地處理這種情況。如何在表格中正確使用空字段(性能明智)

我目前有一張表,旨在成爲各種銀行分類帳。該表有一個存款領域和一個撤銷領域(以及其他一些信息)。所有連續的信息都與存款和提款有關,但是隻有一個或另一個(存款/提款)被填寫(其他字段將始終爲空)。

我應該創建兩個表(withdrawl表和存款表),或者只是將兩個默認值都設爲null,並且只在插入時填充單個值?也就是說,這樣的空字段是性能問題嗎?而且,如果我將它縮放以包含更多的空字段(例如數據庫中的15個字段,其中8個將默認爲空)呢?

+2

您可以簡單地使用'TransactionAmount'字段上的符號來確定它是信用卡還是借記卡嗎?可空列使用額外的位。多個可爲空的列的位被打包爲字節,所以空間不太受關注。 – HABO

回答

0

作爲@HABO建議我會使用一列的金額。要確定是撤回還是存款,創建第二列,除非,金額的符號足以確定。當您想要從表格中提取信息時,您可以使用視圖或計算列。

如果您已將自己的心設置在兩個單獨的列上,那麼爲了確保只有一個設置了,您可以在表上添加一個觸發器來強制執行該規則,並在違規時執行回滾。這會在您的中間層代碼中負責正確輸入數據,當然,當觸發器執行回滾並引發raiserror時,會做出適當的反應。

相關問題