首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向城市/州的MySQL数据库设计

面向城市/州的MySQL数据库设计
EN

Stack Overflow用户
提问于 2011-08-19 10:29:34
回答 2查看 8.2K关注 0票数 0

我正在建设一个网站,其中将有一堆公司和他们的企业上市,所以他们将有他们的地址,城市,州,邮政编码等。

我在这里找到了这个网站:http://jesseprice.com/mysql-city-state-zip-latitude-longitude-database/,它有一个包含所有城市、州、邮政编码、县、纬度、经度的数据库。

我导入了上面的数据库,所以我的问题是如何将其连接到我的companies表?当一家公司注册时,我想我可以为州做一个下拉列表,然后它会下拉到该州找到的城市,从数据库中提取,然后从这些城市中选择,然后是邮政编码。这样行得通吗?这样他们就不需要自己输入了?

我只是对如何正确地做这件事以及如何让它协同工作感到有点困惑。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-19 13:23:37

选项1:

将所有字段添加到地址表中,在添加时引用选定的表,将城市、州、邮政编码、县、经度和经度放入表中。

优势

  • 您可以在不更新下载的表的情况下提供国际支持。
  • 您可以在不丢失数据的情况下更新下载的表(不太可能)
  • 所有数据在一个单表查询中都可用。
  • 纵向搜索应为faster.
  • Allows,以便灵活地查找可能在下载表中不可用的地址。

选项2:

仅添加一个zip字段,对于所有查找,从下载的表中提取数据。

优势

  • Normalized -所有记录都在一个表中。更少的驱动器空间。

实际上,我建议将字段添加到您的托管表中,并将下载的表保留为只读的、可替换的引用表。

票数 1
EN

Stack Overflow用户

发布于 2013-04-08 21:24:35

你需要有下面的表格设计(公司/城市)-

代码语言:javascript
复制
CREATE TABLE `companies` (
  `companyID` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `companyName` varchar(150) NOT NULL DEFAULT '',
  `address` varchar(300) NOT NULL DEFAULT '',
  `cityID` smallint(5) NOT NULL,
  `countryID` varchar(3) NOT NULL,
  PRIMARY KEY (`companyID`),
  KEY `cityID` (`cityID`),
  KEY `countryID` (`countryID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;


CREATE TABLE `countries` (
  `countryID` varchar(3) NOT NULL DEFAULT '',
  `countryName` varchar(52) NOT NULL DEFAULT '',
  `localName` varchar(45) NOT NULL,
  `webCode` varchar(2) NOT NULL,
  `region` varchar(26) NOT NULL,
  `continent` enum('Asia','Europe','North America','Africa',
'Oceania','Antarctica','South America') NOT NULL,
  PRIMARY KEY (`countryID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `cities` (
  `cityID` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `cityName` varchar(50) NOT NULL,
  `stateID` smallint(5) unsigned NOT NULL DEFAULT '0',
  `countryID` varchar(3) NOT NULL DEFAULT '',
  PRIMARY KEY (`cityID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

您可以从这里下载mysql格式的世界城市/国家/地区的完整列表-

http://myip.ms/info/cities_sql_database/World_Cities_SQL_Mysql_Database.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7116336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档