我在想一個問題,並且總是在我們的日常開發生活中發生。 例如,我有一個table1 20列,table2 30列,表3 40列。但對於表1,2,3,他們有共同的10列。關於具有共同屬性的SQL表
有幾個例子可能會把它放在上下文中。
寵物商店大約有狗,貓,金魚等,所有的寵物有一個名稱,價格,得到的日期等,但每種寵物都有屬性,其他類型的沒有數據。
約車輛數據庫具有關於汽車,卡車(貨車),和摩托車的數據。他們都有車輛識別號碼,註冊號碼和製造年份。但他們每個人都有自己的屬性。
有關客戶數據庫有關於公司的那些客戶,和個人是客戶的數據。他們都有電話號碼,但他們也有不同的屬性。
那麼什麼是DB結構的合理設計。 A:用20,30,40列創建3個表格? B:創建3表10,20,30列和另一個表共10列?如果我搜索一個記錄,我需要加入共同表
因此我該如何分析這個性能題?不知道sql的工作原理,會爲此做一些調查工作。 任何人都可以共享有關設計和不同的性能
您應該在[DBA Exchange](https://dba.stackexchange.com/help/on-topic)上提出有關查詢性能的問題。 – F0XS
您應該在需要添加條件的列上添加索引 –
這是一個太寬泛的問題。在事務處理情況下,最好將正常情況下的重複/冗餘列歸一化。但並非總是如此,這取決於模型中首先包含這三個表的原因,也許存在不同的約束條件。在分析情況下,最好將它們作爲一種緩存區分開來,或者最好對其進行規範化處理,這樣所有三個數據集都可以放在同一個表中,從而使SQL的編寫更加容易。所以,***沒有上下文,它取決於... *** – MatBailie