我需要能够在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然后如何创建查询可以应付它?
答案 0 :(得分:1)
计划A:将目录路径放在与文件名不同的表中的行中。
计划B:与计划A一样,但路径是"层次结构"在新表中安排。
计划C:离开" dir / fn"按原样,然后使用LIKE
或RLIKE
找到一行,然后使用SUBSTRING_INDEX
(或MariaDB中的REGEXP_REPLACE
)替换。