2011-10-31 107 views
3

我想擁有每個文件夾都有的文件夾和文檔。文件夾可以有無限的子文件夾。你認爲什麼是最好的mysql模式。你認爲這是好的嗎?Mysql文件夾和文檔

Table Folders 
    id 
    name 
    parent (if null the root) 
    auth_user (access control type) 
    created_date 
    created_by 

Table documents 
    id 
    name 
    type 
    idFolder (FK id of folders) 
    auth_user (access control type) 
    created_date 
    created_by 

您認爲以上是好的還是會在以後出現問題?你認爲與上述可以快速和容易的文件夾樹(我認爲與ORDER BY父ASC可以得到樹右)?

回答

2

鄰接列表對於插入和移動子樹是很好的,但是如果您需要查詢比一個層次更深的層次,那麼這是a **中的痛苦,因爲如果深入n層次,您將最終得到n連接。舉個例子:給我所有後代/文件夾X的祖先

我建議結合使用鄰接列表(PARENT_ID)有如下型號之一:

我真的很喜歡嵌套組 - 但它有一個退縮 - 刀片是緩慢的。但通常你會有更多的讀取(瀏覽)結構,而不是插入新節點。

另一件事:

我通常把文件夾和文件在同一個表和國旗他們用布爾is_folder列。我喜歡將文件夾/文件視爲樹中的「節點」,因此它們基本相同。其他元數據將被存儲在另一個表中。