2012-10-05 33 views
1

我想存儲各種機構的數據。 我想存儲允許其所在國家所在地的數據。如何存儲數據 - 我應該直接複製

因此,我需要爲每個機構存儲城鎮數據,縣數據和國家/地區數據。

我有一個鎮,縣和國家分別數據庫,都連接在一起,使得例如我可以搜索一個鎮,其「county_id」列縣的ID匹配在縣表等

我想知道從實際建立表中引用這些數據的最佳方法。

目前在這個表格中,我只有一個包含相應數據的城鎮,縣和國家欄。

我的URL結構website.com/country/county/town/name所以有數據這樣可以讓我找到一個查詢的編制,並沒有加入等

什麼是具有好處只有一個帶有城鎮ID的列,然後每次查詢加入以查找縣/國家/地區的數據?顯然,一個好處是,如果有任何數據被更改,它會自動更新。另一個我想是它需要更少的數據庫存儲空間。

另一方面,但它會需要更多的查詢。

有什麼想法?

感謝

回答

2

那麼,你有很多注意到這個評論:去歸一化通常有助於讀取性能,對寫入性能不利,而歸一化通常會做相反的事情。

通常,您會比您在某些數據上寫入的內容執行更多的讀取操作。如果這是你的情況,那麼我會保留原來的數據(在每個機構入口中有重複的城鎮,縣等)。更新速度會更慢(更多的代碼,更多的驗證,更多的時間發送和執行更新),但讀取速度更快(更簡單的查詢代碼,更少的時間花在數據庫端執行查詢等)。我最近在一個項目中每月更新一次數據,但每天多次閱讀(顯示在Web應用程序中),所以我們最終從具有規範化數據庫和大量聯接(僞或實際)開始, ,到類似於你在這裏的數據重複,並且網絡應用程序的讀取性能和響應速度顯着提高。噢,就數據庫空間而言(就像在磁盤上佔用的物理空間一樣),雖然從理論上講,對錶格進行規範化會減少空間(有時會顯着),但這不會影響讀取和/或者寫速度顯着,所以如果在爭取性能(而不關心磁盤空間)的時候不考慮這個參數,你會更好。

0

在你的情況沒有數據庫節省空間,但你可以改變保持非常容易。購買城鎮不會改變縣或國家,你的數據庫就是這樣的安全!

在這種情況下拆分它意味着存儲和性能的成本。如果不需要額外的數據,請不要分割!

相關問題