【发布时间】:2014-10-24 09:49:35
【问题描述】:
我想在 MySQL 数据库中表示递归父子关系。我想创建一个category-subcategory 关系。一个类别可以有 N 个子类别,每个类别可以有 N 个子类别,依此类推。我正在考虑有一个单独的category 表,其中有一个指向它自身的外键。这就是我的意思:
CREATE TABLE `category` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`parent_category` int NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`parent_category`) REFERENCES `category` (`id`)
)
如果类别是顶级类别,parent_category 可以为空。
这是表示这种关系的正确方式吗?在我的设计中我还应该考虑其他一些事情(性能、查询......)吗?
【问题讨论】:
-
由于 MySQL 的 SQL 功能有限,我不会在 MySQL 中那样做。由于缺少递归查询,您将很难从该层次结构中检索数据。搜索“嵌套集模型”以获得可以用 MySQL 实现的不同设计
标签: mysql sql hierarchical-data recursive-query