设为首页 加入收藏

TOP

10分钟掌握数据库建模(二)
2014-11-24 07:14:03 来源: 作者: 【 】 浏览:63
Tags:10分钟 掌握 数据库 建模
+--------+-----------+-----------+

| id | name | description | status | parent_id | path |

+----+-----------+-----------------------+--------+-----------+-----------+

| 1 | 中国 | 中华人民共和家 | Y | NULL | 1/ |

| 4 | 广东省| 广东省 | Y | 1 | 1/4 |

| 5 | 深圳市| NULL | Y | 4 | 1/4/5 |

| 6 | 宝安区| NULL | Y | 5 | 1/4/5/6 |

| 7 | 龙华镇| NULL | Y | 6 | 1/4/5/6/7 |

+----+-----------+-----------------------+--------+-----------+-----------+

CREATE TABLE `category` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '分类ID',

`name` VARCHAR(50) NOT NULL COMMENT '分类名称',

`description` VARCHAR(200) NULL DEFAULT NULL COMMENT '分类描述',

`status` ENUM('Y','N') NOT NULL DEFAULT 'Y' COMMENT '分类状态有继承性',

`parent_id` INT(10) NULL DEFAULT '1' COMMENT '分类父ID',

`path` VARCHAR(255) NOT NULL COMMENT '分类递归路径索引',

INDEX `PK` (`id`),

INDEX `relation` (`id`, `parent_id`),

INDEX `FK_category_category` (`parent_id`),

INDEX `path` (`path`)

)

COMMENT='分类表'

ENGINE=InnoDB

ROW_FORMAT=DEFAULT

AUTO_INCREMENT=0

insert into category(`name`,`description`,`status`,`parent_id`,`path`) values('中国','中华人民共和家','Y',null,'1/')

ALTER TABLE `category`

ADD CONSTRAINT `FK_category_category` FOREIGN KEY (`parent_id`) REFERENCES `category` (`id`)

抽取广东子树

select * from category where path like '1/4%';

mysql> select * from category where path like '1/4%';

+----+-----------+-------------+--------+-----------+-----------+

| id | name | description | status | parent_id | path |

+----+-----------+-------------+--------+-----------+-----------+

| 4 | 广东省| 广东省 | Y | 1 | 1/4 |

| 5 | 深圳市| NULL | Y | 4 | 1/4/5 |

| 6 | 宝安区| NULL | Y | 5 | 1/4/5/6 |

| 7 | 龙华镇| NULL | Y | 6 | 1/4/5/6/7 |

+----+-----------+-------------+--------+-----------+-----------+

4 rows in set (0.00 sec)

文章表设计

看具体情况,拆分表,可按“日”,“月”,“年”等等

+-----------+

| category |

|-----------|

+-->|id | <---+

| |title | |

| |description| 1:n

| |status | |

| |parent_id | o---+

| +-----------+

|

1:n

|

| +-----------------+ +------------------+

| | article_2008_01 | | feedback_2008_01 |

| |-----------------| |------------------|

| |id |<--1:n--+ |id |

| |title | | |title |

| |content | | |content |

| |datetime | | |datetime |

| |status | | |status |

+--o|category_id | +--o|news_id |

+--o|user_id | +-->|user_id |

| +-----------------+ | +------------------+

| |

1:n +----------+ +---1:n---+

| | user | |

| |----------| |

+-->|id | <---+

|user |

|passwd |

|nickname |

|status |

+----------+

4.1. 分区表设计

分区表可以通过表空间,等等技术实现,优点是解决了Union查询问题,保证了数据的一致性。

+-----------+

| category |

首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇讲解更改MySQL数据库root密码的具.. 下一篇Mysql ON子句和USING子句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)