簡體   English   中英

如何管理數據庫中的國家/地區

[英]How to manage Countries in database

我知道我的問題看起來有點模糊,但我覺得管理國家/地址實際上是非常常見的,所以我想對我的實際設置提出一些建議。

我有一個帶有“country”列的數據庫,以前它是一個中型int類型,充當另一個表的外鍵,其中包含有關這些國家的實際信息(主要是id,name和ISO3166-1 alpha2代碼)。

經過一些測試和基准測試后,我最終將所有國家/地區的信息都放在了php文件陣列中,包括/在需要時需要它,它比查詢數據庫快一兩個數量級。 (他們是278個國家)。

顯然這是一個更好的方法,但我覺得有些不對勁,因為人們通常傾向於從桌子而不是從文件中讀取這種東西,但我無法弄清楚它會是什么,是否更容易維護或這樣的事情?

此外,我正在考慮將2個字母的ISO代碼作為鍵而不是數字ID,它將更具人性化,無論如何它們都是獨一無二的。 我看到400.000行表中沒有明顯的性能損失,如果我的數據庫增長,這最終會出錯嗎?

一般來說,您希望將一起變化的事物保持在一起。 因此,如果您的主數據存在於SQL數據庫中,那么將國家/地區數據保存在數據庫中有助於避免瘋狂,就像有人更改PHP查找數組而沒有意識到SQL數據庫中存在大量數據一樣。

它還有助於避免重復 - 如果您為系統構建第二個應用程序(例如管理系統),則最終不會有2個國家/地區查找PHP文件的副本。 同樣,復制會為錯誤創造機會,開發人員可以更改數據庫和其中一個查找文件,但不能更改另一個。

所有這些都是相當防御的 - 但應用程序往往以意想不到的方式發展,避免錯誤通常是一個好主意。

根據我的經驗,使用兩個表之間的連接對於一個經過良好調優的系統幾乎沒有可測量的性能影響,你提到的數字 - 在將查找移動到PHP之前是否優化了SQL?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM