2011-12-21 100 views
0

我有一個業務表,並且有50個外鍵列引用了其他主數據表。 去取我的所有查詢必須參加所有50個參考表像選擇查詢中的連接數

select ct.id , ct.name , ct.description , st.value , pr.value , sv.value , .... 
from 
core_table ct 
left outer join domain_value st on ct.status_fk = st.id 
left outer join domain_value pr on ct.priority_fk = pr.id 
left outer join domain_value svon ct.severity_fk = sv.id 
....... 
....... 

所以這樣我需要50左外連接的數據。 是否有權利做50個這樣的左外連接,或者我們是否有其他優化方式來實現這一目標?

+0

我會問爲什麼你在一個表中有50個外鍵列,這是一個規範化問題嗎? – Coops 2011-12-21 10:58:04

+0

這裏它的記錄類似於50個主數據。所以我選擇保留在同一張表中。這就是要求。 – ashok 2011-12-21 14:44:39

回答

0

Is too many Left Joins a code smell?

這對某些設計一個完全合法的解決方案。

+0

感謝「CodeBlend」的回覆..所以你說50到100左右的連接完全可以嗎?我看到這個表可以擴展到最多100個參考字段不超過。所以是100左外連接也不會導致任何性能問題?基本上根據這種理解,只有我可以繼續我的設計! – ashok 2011-12-21 14:05:31