我在存储多个分类数据时遇到问题。一个类别可以具有任意大小的级联深度。我认为创建更多具有关系的表不是一个好主意。存储此类分类数据的最佳方式是什么。
ex categories:
-MainCategory1
-subcategory1
-subcategory11
-subcategory12
-subcategory13
--subcategory131
-subcategory2
-subcategory21
-subcategory22
-subcategory221
-subcategory23
-subcategory231
-subcategory2311
-MainCategory2
-subcategory21
-subcategory211
-subcategory2131
-subcategory2131
-subcategory212
-subcategory213
-subcategory2131
最佳答案
一种常见的做法是创建一个表,其中每个类别都有一个 ID、一个名称和一个父 ID(顶级类别的父 ID 为 null
):
CREATE TABLE categories (
id NUMERIC PRIMARY KEY,
name VARCHAR(100),
parent_id NUMERIC FOREIGN KEY REFERENCES categories(Id)
)
您的一些数据例如如下所示:
INSERT INTO categories VALUES (1, 'MainCategory1', null);
INSERT INTO categories VALUES (2, 'subcategory1', 1);
关于sql - 如何在数据库中存储级联类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823655/