就性能或查詢優化而言,不同表和類型列之間存在差異?性能類型化列x不同表
例如:
Create Table AllInOne(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null,
OneType Integer Not Null
)
凡OneType僅接收對戰以下結構1,2或3(整數值)
:
Create Table One(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
Create Table Two(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
Create Table Three(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
另一種可能的結構:
Create Table Root(
Key Integer Identity Primary Key,
Desc varchar(20) Not Null
)
Create Table One(
Key Integer Primary Key references Root
)
Create Table Two(
Key Integer Primary Key references Root
)
Create Table Three(
Key Integer Primary Key references Root
)
在第三種方式中,所有數據都將設置在根和與一個,兩個和三個表的關係中。
我前幾天問過我的老師,如果有任何區別,他不能回答。我們假設我必須在這三種方法中進行選擇。
假設常用的查詢正在過濾該類型。並沒有引用這些表的子表。
爲了更容易理解,我們來考慮一下工資系統。
One = Incomings
兩個=折扣
三=計算基數。
取決於您的查詢。除了表現之外,還有另一個(更嚴重的區別)。在第二種設計中,不能有引用「AllInOne」表的外鍵,您只能單獨引用任何3個表。另一種方式。 – 2013-02-26 13:32:28
同意ypercube。如果你遵循這個論點來得出合乎邏輯的結論,那麼你只能在任何數據庫中有一張表,只是有很多列... – Paddy 2013-02-26 13:58:10
@ypercube改寫了這個問題 – EProgrammerNotFound 2013-02-26 14:19:02