国家/地区列表的最佳做法(SQL,XML等)

dpe*_*tch 2 xml mysql sql database-design

在开发网站或Web应用程序时,我想知道当您需要世界国家/地区列表时的最佳做法是什么-在SQL中使用“国家/地区”表,将所有值存储为XML或其他方式会更好吗?

例如,假设我需要存储每个用户的国家(使用SQL),并且需要使用网站上一个(或多个)下拉菜单中的国家列表。

raj*_*ndy 5

如果要存储每个用户的国家(最好在用户表中保存CountryId),则应该有单独的国家/ FOREIGN KEY地区表,以及从用户表到国家/地区表的引用。您也可以在更改国家名称时使用管理面板添加/更改国家名称。

但是有趣的是,您需要在每次页面加载时查询数据库,以获取“几乎恒定”的所有国家/地区名称!!

解决此问题的方法是先获取所有国家/地区名称,然后相应地对其进行缓存。当您第二次填充国家/地区组合时,请从缓存中获取国家/地区列表。

  • 如果缓存为空,则从国家表中获取所有国家/地区并将其缓存
  • 如果存在缓存项,则使用缓存的国家(无数据库查询)
  • 当您从“管理”部分更改国家/地区名称时,还要重新生成国家/地区缓存

如果您不想每次在页面上加载200多个几乎不变且很少更新的记录时,这种方法最适合。同样,这种方法减少了数据库开销。