database - 一张桌子的物品太少?
问题描述
我正在创建一个网站,用户应该指定的一件事是他/她的国家。我想大约有200个国家。哪种方法更好 - 将 200 个国家/地区存储在应用程序的列表/数组中(因此使用更多 RAM)或将它们作为表存储在数据库中?这类问题一般是如何解决的?
解决方案
一个 200 行的表本身并不是一个坏习惯。主要问题是让您的国家/地区列成为该表的外键的技术复杂性。国家是否定期进出?他们是否经常以需要将所有名称集中在一个表中的方式更改名称?
我通常的做法是简单地将国家的两个字母的国家代码存储在一个char(2)
列中。这使您能够快速推断实际国家/地区的名称(而不是检查国家/地区 ID 37 的含义),而无需实际引入额外的表、额外的连接。
现在,如果您的应用程序实际上以此类国家/地区的数据为中心,那么使用包含多个列的国家/地区表来存储有关该国家/地区的信息是有意义的,但是我建议使用两个字母的国家/地区代码作为该表的主键.
推荐阅读
- sql - 将 EXEC master..xp_cmdshell 'Query User' 的结果插入表列中
- javascript - 如何与两种不同类型的搜索元素共享 Google CSE 结果元素
- sql - BigQuery:是否可以迭代数组?
- python - Python Scrapy 返回 200 但关闭 Spider 却一无所获
- java - 如何将一个 JButton 与一组 JRadioButtons 连接起来?
- reactjs - 在 Reactjs 中悬停时更改图像
- python - selenium 无法在 ubuntu 中导入名称 webdriver
- java - 使用 CertPathBuilder 构建证书路径时无法获得受信任的根 CA
- python - 在数据类中使用类或静态方法作为 default_factory
- c++ - 射线三角相交。它有两个方向