关于省市县的数据表的设计有两种方式:
一.将其设计成一张表
DROP TABLE IF EXISTS `system_district`; CREATE TABLE `system_district` ( `district_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '区域ID', `parent_id` bigint(20) unsigned NOT NULL COMMENT '父ID', `district_name` varchar(200) NOT NULL COMMENT '区域名称', `short_name` varchar(200) NOT NULL COMMENT '简称', `longitude` decimal(10,7) NOT NULL DEFAULT '0.0000000' COMMENT '经度', `latitude` decimal(10,7) NOT NULL DEFAULT '0.0000000' COMMENT '维度', `level` int(11) NOT NULL DEFAULT '1' COMMENT '等级(地区级别 1-省、自治区、直辖市 2-地级市、地区、自治州、盟 3-市辖区、县级市、县 4-街道办-乡)', `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序', `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除标志: 0未删除,1已删除', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '修改时间', PRIMARY KEY (`district_id`) ) ENGINE=InnoDB AUTO_INCREMENT=659004503 DEFAULT CHARSET=utf8 COMMENT='区域表';
二.将其设计成三张表
省表:
DROP TABLE IF EXISTS `province`; CREATE TABLE `province` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(6) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of province -- ---------------------------- INSERT INTO `province` VALUES ('1', '110000', '北京市'); INSERT INTO `province` VALUES ('2', '120000', '天津市'); INSERT INTO `province` VALUES ('3', '130000', '河北省'); INSERT INTO `province` VALUES ('4', '140000', '山西省'); INSERT INTO `province` VALUES ('5', '150000', '内蒙古');
市表:
DROP TABLE IF EXISTS `city`; CREATE TABLE `city` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(6) NOT NULL, `name` varchar(20) NOT NULL, `provincecode` varchar(6) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=343 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of city -- ---------------------------- INSERT INTO `city` VALUES ('1', '110100', '北京市', '110000'); INSERT INTO `city` VALUES ('2', '130100', '石家庄市', '130000'); INSERT INTO `city` VALUES ('3', '130200', '唐山市', '130000'); INSERT INTO `city` VALUES ('4', '130300', '秦皇岛市', '130000'); INSERT INTO `city` VALUES ('5', '130400', '邯郸市', '130000'); INSERT INTO `city` VALUES ('6', '130500', '邢台市', '130000'); INSERT INTO `city` VALUES ('7', '130600', '保定市', '130000'); INSERT INTO `city` VALUES ('8', '130700', '张家口市', '130000');
县表:
DROP TABLE IF EXISTS `area`; CREATE TABLE `area` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` varchar(6) NOT NULL, `name` varchar(20) NOT NULL, `citycode` varchar(6) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3145 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of area -- ---------------------------- INSERT INTO `area` VALUES ('1', '110101', '东城区', '110100'); INSERT INTO `area` VALUES ('2', '110102', '西城区', '110100'); INSERT INTO `area` VALUES ('3', '110103', '崇文区', '110100'); INSERT INTO `area` VALUES ('4', '110104', '宣武区', '110100'); INSERT INTO `area` VALUES ('5', '110105', '朝阳区', '110100'); INSERT INTO `area` VALUES ('6', '110106', '丰台区', '110100'); INSERT INTO `area` VALUES ('7', '110107', '石景山区', '110100'); INSERT INTO `area` VALUES ('8', '110108', '海淀区', '110100'); INSERT INTO `area` VALUES ('9', '110109', '门头沟区', '110100'); INSERT INTO `area` VALUES ('10', '110111', '房山区', '110100'); INSERT INTO `area` VALUES ('11', '110112', '通州区', '110100'); INSERT INTO `area` VALUES ('12', '110113', '顺义区', '110100'); INSERT INTO `area` VALUES ('13', '110114', '昌平区', '110100');