社区表,社区结构3级 root->parent->child
CREATE TABLE `community` (
`id` varchar(10) NOT NULL,
`name` varchar(1000) NOT NULL DEFAULT '' COMMENT '社区名',
`parent_id` varchar(100) NOT NULL DEFAULT 'root' COMMENT '父节点Id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='社区表';
子社区可以更改父社区,比如原来的一个3级社区换了父社区
管理员可以管理不同的社区,比如超级管 可以管理全部社区,二级管理员可以管他下属的3级社区
CREATE TABLE `admin` (
`id` varchar(100) NOT NULL,
`password` varchar(50) NOT NULL DEFAULT '' COMMENT '密码',
`username` varchar(255) NOT NULL DEFAULT '' COMMENT '用户名',
`community_id` varchar(100) DEFAULT NULL COMMENT '社区Id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='管理员表';
活动表,活动关联到社区
CREATE TABLE `activity` (
`id` varchar(100) NOT NULL,
`tag` varchar(255) DEFAULT '' COMMENT '标签',
`title` varchar(255) DEFAULT '' COMMENT '活动标题',
`community_id` varchar(100) NOT NULL DEFAULT '' COMMENT '社区id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='活动表';
管理员查询活动,2级管理员可以查询它全部管理到社区活动信息,
我想到的方案是使用in
select * from activity where communitu_id in('1','2')
想请问各位大佬,如果社区很多的话,这中方式效率很低吧,有其它方案吗,比如数据库表结构设计
在数据库中存储一棵树,实现无限级分类