Sql-Server

儲存記錄是否是兩種選擇之一的不同儲存方式的優缺點?

  • May 7, 2013

我正在嘗試儲存地址是工作地址​​還是家庭地址。永遠不會有另一種類型的地址。

我想知道儲存它的不同方式的優缺點是什麼,以及對於這種被認為是最佳實踐的情況是否有一種公認的“風格”,

最好只有一個

  1. IsHomebool 列,如果它是錯誤的,我只是假設它是一個工作?

2)或aIsHomeIsWorkcolumn,

3)或AddressTypecolumn是一個ID,它對應於另一個具有工作和家庭ID的表?

4)還是我沒有考慮過的東西?

第三種選擇似乎更簡潔,但每次都需要加入似乎效率低下。

歸根結底,#3 仍然是最好的選擇。我們當時認為很簡單,但通常情況下,企業會想出另一個理由來添加更多類型的地址。

從一開始就正確設計!祝你好運!

如果您確實確定這些類型不會更改(或至少不會經常更改),您還可以使用 3) 的變體,使用帶有檢查約束AddressType的類型列,將值限制為and 。varchar``'work'``'home'

這不如查找表靈活,但仍比設置為 false 時具有某種隱含含義的布爾值好。而且您不需要聯接(儘管我懷疑對具有兩行的表的聯接會很明​​顯)

引用自:https://dba.stackexchange.com/questions/41632