MySQL中的目录树:有没有办法在文件夹中同时具有引用完整性和文件名唯一性?

MySQL中的目录树:有没有办法在文件夹中同时具有引用完整性和文件名唯一性?,mysql,Mysql,我尝试在MySQL中建立目录树模型,我的第一个想法是: CREATE TABLE Folder ( id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR (255) NOT NULL, parentId INT UNSIGNED, UNIQUE INDEX (name, parentId), CONSTRAINT FOREIGN KEY (parentId) REFERENCE

我尝试在MySQL中建立目录树模型,我的第一个想法是:

CREATE TABLE Folder (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR (255) NOT NULL,
    parentId INT UNSIGNED,

    UNIQUE INDEX (name, parentId),
    CONSTRAINT FOREIGN KEY (parentId) REFERENCES Folder (id)

)
但由于MySQL允许在一个唯一索引中使用多个null,因此根据此定义,我可以在根级别拥有两个同名文件夹,如下所示:

id  | name  | parentId
----------------------
1   | a     | null
2   | a     | null
你能找到一种方法同时拥有以下两种吗

  • 防止文件夹成为文件夹的子文件夹的外键 不存在的文件夹
  • 唯一性约束防止文件夹被删除 包含两个同名文件
  • 。强制执行此类高级条件的一种可能方法是使用,如果插入/更新不满足您的条件,则抛出错误

    。强制执行此类高级条件的一种可能方法是使用,如果插入/更新不满足您的条件,则抛出错误