联动查询
什么是联动查询,其实这个东西在生活中非常常见,比如网购(这个几乎人人都用过吧),在网购的时候,我们需要填写订单信息,信息中有一项需要填写地址的地方,有的网站则用的是联动查询,节省了用户填写订单的时间,这时候联动查询就排上用场了,比如当我们在省下拉框中选择:河北省,相对应的市区就需要改变里面的信息,将相对应的市区加载到下拉框里面,贴个图片
数据库设计
设计一张表,然后这张表循环查询自己,根据查询的id查找相对应的parent_id,就能够查询到想要的结果,最后两个字段是冗余字段,可要可不要,根据自己项目需求
创建数据库的语句如下,数据库为MySQL数据库
CREATE TABLE `china_area` (
`id` int(11) NOT NULL,
`parent_id` int(11) NOT NULL DEFAULT '0',
`code` varchar(10) NOT NULL,
`name` varchar(191) NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
简单插入一些数据,完整表数据很大,大概三千多行,这里就不展示所有的数据代码了,免得华而不实,想要这些数据的话,可以去网上找一下,或者自己设计,我也上传了一份,但是需要积分
INSERT INTO `china_area` (`id`, `parent_id`, `code`, `name`, `created_at`, `updated_at`) VALUES
(1, 0, '110000', '北京市', NULL, NULL),
(2, 0, '120000', '天津市', NULL, NULL),
(3, 0, '130000', '河北省', NULL, NULL),
(4, 0, '140000', '山西省', NULL, NULL),
(5, 0, '150000', '内蒙古自治区', NULL, NULL),
(6, 0, '210000', '辽宁省', NULL, NULL),
(7, 0, '220000', '吉林省', NULL, NULL),
(8, 0, '230000', '黑龙江省', NULL, NULL),
(9, 0, '310000', '上海市', NULL, NULL),
(10, 0, '320000', '江苏省', NULL, NULL),
(11, 0, '330000', '浙江省', NULL, NULL),
(12, 0, '340000', '安徽省', NULL, NULL),
(13, 0, '350000', '福建省', NULL, NULL),
(14, 0, '360000', '江西省', NULL, NULL),
(15, 0, '370000', '山东省', NULL, NULL),
(16, 0, '410000', '河南省', NULL, NULL),
(17, 0, '420000', '湖北省', NULL, NULL),
(18, 0, '430000', '湖南省', NULL, NULL),
(19, 0, '440000', '广东省', NULL, NULL),
(20, 0, '450000', '广西壮族自治区', NULL, NULL),
(21, 0, '460000', '海南省', NULL, NULL),
(22, 0, '500000', '重庆市', NULL, NULL),
(23, 0, '510000', '四川省',