我使用数据库为网站创建树视图。我将创建2个表格,我们称之为“文件夹”和“文件”。一个文件夹可以包含多个文件夹和文件,并且文件将充当叶节点 - 这意味着如果您不熟悉该术语,它们就是树中的“死胡同”。将列值限制为同一个表内不同列的值?
的文件表将包含列:
Folder_id, Folder_name, Folder_parent
文件将包含:
File_id, File_name, File_parent
显然File_parent将引用folder_id,从而创造一个外键,但如何让Folder_parent参考Folder_id?
例子:
FOLDER_NAME | FOLDER_ID | FOLDER_PARENT
root 1 null
Cars 2 1
Planes 3 1
BMW 4 2
我认为你错过了这一点,file_parent已经指向folder_id,所以当你看一个文件夹时,你选择file_id其中folder_name ='example' – 2011-05-11 11:17:15
@Abe当创建一个文件很容易确保它不有一个不存在的父级,因为file_parent引用了folder_id。但是在创建文件夹时,不存在类似的故障安全。我可以在插入之前检查id是否有效(从folder_id = parameter选择* from文件夹,如果找到任何文件),但是没有更多的.. table side解决方案吗? – 2011-05-11 12:17:48