我的应用程序使用某种“虚拟文件夹”,因此我需要将树结构存储在数据库中。保存数据的表非常简单,它有3列:
我的问题是:哪个是实现root的最佳方式?
谢谢。
答案 0 :(得分:0)
这实际上取决于您是否有其他要求。我喜欢NULL,因为它具有逻辑意义,但其他要求可能需要其他东西。
答案 1 :(得分:0)
我会争论选项1。
如果选择选项2,那么显示子文件夹的逻辑将需要混淆检查以确保id_folder和id_parent不匹配。
选项1:
SELECT * --don't kill me for using *, it's just for an example
FROM Folders
WHERE id_parent = @folderId
选项2:
SELECT * --don't kill me for using *, it's just for an example
FROM Folders
WHERE id_parent = @folderId AND id_parent <> id_folder