前言
最近需要用到树表来展示数据,去网上搜的时候找的资料都很凌乱,一番学习后自己整理了一遍,希望能帮助到你。最终结果图请看下面。
之前做过树形结构,那这个树表可以理解成树形结构加表的一个结合,下面用图来表示一下两者的区别。可以看到树表下的每一个节点都有相同的属性,那用树表来展示也是很方便
一 创建数据库(数据虚构的)
sql:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tree_table_place
-- ----------------------------
DROP TABLE IF EXISTS `tree_table_place`;
CREATE TABLE `tree_table_place` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
`parent_place` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '父节点',
`place_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地名',
`place_population` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '总人口',
`place_area` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '面积',
`place` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '具体地点',
`place_GDP` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '经济GDP',
`place_weather` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '气候',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of tree_table_place
-- ----------------------------
INSERT INTO `tree_table_place` VALUES (1, '南方地区', '湖南省', '66220000', '21.18万平方公里', '中国湖南省', '41781.5亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (2, '北方地区', '黑龙江省', '66220000', '30.1万平方公里', '中国黑龙江省', '32154.1亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (3, '西北地区', '新疆省', '66220000', '50.5万平方公里', '中国新疆自治区', '21313亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (4, '青藏地区', '西藏省', '66220000', '40.5万平方公里', '中国西藏自治区', '12312亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (5, '湖南省', '娄底市', '30000000', '6.1万平方公里', '中国湖南省娄底市', '1026亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (6, '湖南省', '长沙市', '21321223', '10万平方公里', '中国湖南省长沙市', '6000亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (7, '黑龙江省', '漠河市', '2123455', '6万平方公里', '中国黑龙江省漠河市', '2001亿', '亚热带季风气候');
INSERT INTO `tree_table_place` VALUES (8, '娄底市', '新化县', '3000000', '3