Mysql嵌套集合模型【省份城市示例】
2011-05-01 22:45
316 查看
父分类包围了其子分类。在数据表中,我们通过使用表示节点的嵌套关系的左值(left value)和右值(right value)来表现嵌套集合模型
中数据的分层特性。我们使用了lft和rgt来代替left和right,是因为在MySQL中left和right是保留字。 http://dev.mysql.com/doc/mysql/en/reserved-words.html,有一份详细的MySQL保留字清单。
那么,我们怎样决定左值和右值呢?我们从外层节点的最左侧开始,从左到右编号:
查询全部节点分成展示:
查询节点路径:
参考
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
中数据的分层特性。我们使用了lft和rgt来代替left和right,是因为在MySQL中left和right是保留字。 http://dev.mysql.com/doc/mysql/en/reserved-words.html,有一份详细的MySQL保留字清单。
那么,我们怎样决定左值和右值呢?我们从外层节点的最左侧开始,从左到右编号:
CREATE TABLE `region` ( `id` int(11) NOT NULL auto_increment, `name` varchar(30) default NULL, `parent_id` int(11) default NULL, `lft` int(10) unsigned default NULL, `rgt` int(10) unsigned default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (1,'中国',0,1,20); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (2,'北京',1,2,5); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (3,'北京市',2,3,4); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (4,'上海',1,6,9); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (5,'上海市',4,7,8); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (6,'浙江',1,10,19); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (7,'金华市',6,15,16); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (8,'温州市',6,17,18); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (9,'杭州市',6,11,12); insert into `region`(`id`,`name`,`parent_id`,`lft`,`rgt`) values (10,'宁波市',6,13,14);
查询全部节点分成展示:
SELECT CONCAT(REPEAT(' ', COUNT(parent.id)-1), node.name) AS name, node.id,node.lft,node.rgt, COUNT(parent.id) FROM region AS node, region AS parent where node.lft BETWEEN parent.lft AND parent.rgt group by node.id ORDER BY node.lft;
查询节点路径:
select parent.name, parent.id from region as node, region as parent where node.lft BETWEEN parent.lft and parent.rgt and node.name='金华市';
参考
http://dev.mysql.com/tech-resources/articles/hierarchical-data.html
相关文章推荐
- Mysql嵌套集合模型【省份城市示例】
- MySQL实现嵌套集合模型
- MySQL实现嵌套集合模型
- mysql存储过程游标嵌套示例
- iOS中的应用启动原理以及嵌套模型开发示例详解
- Silverlight实战示例5(兼集合属性的妙用)--客户端模型层(M)
- Silverlight实战示例6(兼集合属性的妙用)--客户端视图模型层(VM)
- mysql 存储过程、存储过程嵌套、自定义函数代码示例
- java中map集合嵌套形式简单示例
- Silverlight实战示例6(兼集合属性的妙用)--客户端视图模型层(VM)
- 全国省份、城市关联表 mysql(含城市名拼音)
- js多级联动示例(省份和城市二级联动)
- 全国高校,省份,城市,区县,的mysql
- (IP|短信中心号|手机号码)解析成省份城市信息数据库[MySQL版]
- java中map集合嵌套形式简单示例
- AJAX应用案例--基于mysql,以POST方式,完成三级级下拉联动【省份-城市-区域】
- PHP无限级分类(嵌套集合模型)
- JQuery应用案例--JQuery-MySql版:城市省份区域-三级联动
- mysql 中国省份城市数据库表
- HAWQ取代传统数仓实践(二)——搭建示例模型(MySQL、HAWQ)