2016-02-23 84 views
5

我有一個銷售數據庫,我希望根據這些類別選擇獲取客戶詳細信息。 我有大約15個類別,我的客戶數據庫是500萬條記錄。 每個產品可能屬於多個類別。 我需要根據所選類別檢索客戶名稱。 將所有這些類別設置爲列或爲產品和類別創建單獨的表然後創建內部聯接是更好的方法嗎? 我希望在性能方面哪一個更好。柱狀數據庫

方法1:

option1 這裏1表示,該產品在該類別。

方法2:

approach2

+1

方法2更好。如果你在方法一中獲得新的類別,那麼它就是可擴展的,而不是你應該改變表格結構。這也適用於關係方式。你可以在方法1的幫助下獲得表格。 – gofr1

+0

感謝gofr1。但我的問題是performance.Joining 500萬記錄不會是一個問題? – aditya

+0

@aditya,no。 SQL Server有效地處理'JOIN',尤其是使用正確的索引。 –

回答

2

第二種方法(Approach 2)是更好的解決方案,而不是創建一個表,因爲它是沒有必要每一件產品可能在方法中,所有類別之一,你是保留通過創建單獨的列即使類別存在或不存在,以及如果將來如果增加了一個類別,您將不得不改變表格的當前結構,這將是艱鉅的任務。

是加入會有點慢,但如果您正確創建索引,它會表現得更好。