MySQL:存储目录结构并查询它

时间:2018-02-08 22:21:10

标签: mysql tree

我需要能够在MySQL中存储文件,目录,但我不知道如何操作,所以我也可以有一个相当高效的查询来从表中获取数据,例如/swatcat/superscecret.txt

我最初的想法是:

DROP TABLE IF EXISTS objects;
CREATE TABLE objects
(
    ID INT NOT NULL AUTO_INCREMENT, 
    filename VARCHAR(200) NOT NULL,
    objectTypeID INT NOT NULL,
    parentID INT,

    PRIMARY KEY (ID),
    FOREIGN KEY (objectTypeID) REFERENCES objectTypes(ID)
);

对象类型是文件或目录:

CREATE TABLE objectTypes
(
    ID INT NOT NULL AUTO_INCREMENT, 
    name VARCHAR(200) NOT NULL UNIQUE,

    PRIMARY KEY (ID)
);

我的思维过程是parentID将是文件或目录所在的目录...问题是找到/swatcat/supersecret.txt如果我决定将swatcat重命名为test101然后如何创建查询可以应付它?

1 个答案:

答案 0 :(得分:1)

计划A:将目录路径放在与文件名不同的表中的行中。

计划B:与计划A一样,但路径是"层次结构"在新表中安排。

计划C:离开" dir / fn"按原样,然后使用LIKERLIKE找到一行,然后使用SUBSTRING_INDEX(或MariaDB中的REGEXP_REPLACE)替换。