2013-08-28 77 views
0

我一直在想,如果你能幫助我用這個例子來看看在我的數據庫中實現什麼更好。向數據庫添加額外的表格

我有兩個表:

service 
--------------------------- 
id 
name 
description 
price 
stock 
shipping method 
uses 

product 
--------------------------- 
id 
name 
description 
price 
stock 
shipping method 

現在我想知道我是否應該引入第三個表,並有三個表像這樣

service 
--------------------------- 
id 
sellable_item_id 
uses 

product 
--------------------------- 
id 
sellable_item_id 

Sellable_item 
--------------------------- 
id 
name 
description 
price 
stock 
shipping method 
image 

,我想問的原因是,我刨成千上萬的服務和產品,並且您可以看到產品只包含可供銷售商品的ID和外鍵。

現在我需要問這是否值得這樣做,因爲我需要將產品和服務分成兩個不同的類別,因此將通過產品和服務搜索完全不同的東西。

在搜索產品時,我無法想象通過可售商品進行查看,然後檢查他們是否是產品或服務是非常有效的。我想這將是更有效的搜索產品,然後提取外鍵鏈接的可銷售項目信息。

再次,更有效率的事情是將可銷售信息放入產品中,但如果數據放在另一張表中,則會導致問題再次出現,因爲它與服務相同。

回答

0

是的,這在處理僅適用於服務或產品的查詢時效率更高。

+0

關於什麼是?是的,我應該複製數據? 如果是這樣,這不會影響表的規範化 – bubblebath

+0

是的,你可以提到三個表,它會影響規範化。但規範化並不總是正確的做法。擁有三張表格將爲僅適用於服務或產品的查詢提供高性能。 – Ragavan

+0

好吧,很酷。所以爲了表現,我應該選擇兩張桌子來獲得最佳表現。如果我去三張桌子,你認爲這會影響表現多少? – bubblebath