mysql - 多重多层分类数据库设计
阿神
阿神 2017-04-17 11:33:37
[MySQL讨论组]

说明:项目需要都同一个post做多重分类,如:

  1. 中国/北京/朝阳/望京
  2. 学校/大学/北京大学/文学院
  3. ........

项目会对同一个页面做很多多层分类(或者说一个post发布在多个分类下)如何设计数据库,以下的设计查询的时候太慢,有咩有变通的方法

--元分类表
create table tag (
  tagid mediumint(8) unsigned not null auto_increment,
  tag varchar(12) not null default '',
  parentid mediumint(8) unsigned not null default '0',
  primary key (tagid),
  key (parentid),
  key (tag)
) engine=myisam;

--分类与post关系表
create table post_tag (
  id int(10) unsigned not null auto_increment,
  tagid mediumint(8) unsigned not null default '0',
  postid int(10) unsigned not null default '0',
  tagline varchar(100) not null default '',
  primary key (id),
  key (tagid),
  key (postid)
) engine=myisam;

查询 朝阳的大学 ?

阿神
阿神

闭关修行中......

全部回复(2)
阿神

又是这种问题……咱能不用关系型数据库存层次型数据行不?
你如果实在想用RDBMS,就做一张tag->entity的一对多表,然后在tag上加索引,数据冗余和一致性问题自己想办法解决。

饶了MySQL吧…………

迷茫

sf上有篇文章是介绍的左右值分类的,可以给你一些灵感!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号