我正在建设一个网站,其中将有一堆公司和他们的企业上市,所以他们将有他们的地址,城市,州,邮政编码等。
我在这里找到了这个网站:http://jesseprice.com/mysql-city-state-zip-latitude-longitude-database/,它有一个包含所有城市、州、邮政编码、县、纬度、经度的数据库。
我导入了上面的数据库,所以我的问题是如何将其连接到我的companies表?当一家公司注册时,我想我可以为州做一个下拉列表,然后它会下拉到该州找到的城市,从数据库中提取,然后从这些城市中选择,然后是邮政编码。这样行得通吗?这样他们就不需要自己输入了?
我只是对如何正确地做这件事以及如何让它协同工作感到有点困惑。
谢谢。
发布于 2011-08-19 13:23:37
选项1:
将所有字段添加到地址表中,在添加时引用选定的表,将城市、州、邮政编码、县、经度和经度放入表中。
优势
选项2:
仅添加一个zip字段,对于所有查找,从下载的表中提取数据。
优势
实际上,我建议将字段添加到您的托管表中,并将下载的表保留为只读的、可替换的引用表。
发布于 2013-04-08 21:24:35
你需要有下面的表格设计(公司/城市)-
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
。
https://stackoverflow.com/questions/7116336
复制相似问题