MySQL体系结构分层数据

问题描述

| 基本上,问题是我应该在使用分层数据的每个表中使用相同的列,还是在一个表中处理所有类型的数据的分层数据。 我的数据库存储了不同类型的层次数据:页面,问题等。下面给出了“ 0”数据库
CREATE TABLE `hp_questions` (
  `client_id` int(4) unsigned NOT NULL,`id` int(4) unsigned NOT NULL AUTO_INCREMENT,`root_id` int(4) unsigned NOT NULL,`parent_id` int(4) unsigned NOT NULL,`depth` int(4) unsigned NOT NULL DEFAULT \'0\',`position` int(4) unsigned NOT NULL DEFAULT \'0\',`absolute_position` int(4) unsigned NOT NULL DEFAULT \'0\',`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,`slug` varchar(255) COLLATE utf8_unicode_ci NOT NULL,`uri` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,`body` longtext COLLATE utf8_unicode_ci,`last_modified_by_id` int(4) unsigned DEFAULT NULL,`last_modified_on` int(4) unsigned DEFAULT NULL,`language` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,PRIMARY KEY (`id`),KEY `client_id` (`client_id`)
) ENGINE=InnoDB AUTO_INCREMENT=738 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
现在,
root_id,parent_id,depth,position,absolute_position
仅用于分层数据。同一列具有
pages
filesystem
templates
permissions
表。我想知道将它们放在一个表中并添加表示数据类型的附加列“ѭ7”是否更正确?     

解决方法

        “正确”的答案在很大程度上取决于您要执行的操作以及如何显示数据,但是我会说是的,您的建议很有意义。如果层次结构是数据组织的核心,那么在将数据规范化时将其分离是有意义的。 这样做将需要在代码中添加其他逻辑,以确保根据所查看的内容链接到正确的问题/页面/文件系统/ etc表。