我正在一個項目中,我需要設計一個像目錄管理的表。我只是DB的初學者,所以我真的需要你們的專業知識。我目前的數據庫設計思路可以如下圖所示:mysql數據庫設計和查詢optimazation
id name type create_time parent_id
1 folder1 folder 2011-2-3
2 folder2 folder 2011-2-3 1
3 folder3 folder 2011-2-3 1
4 folder4 folder 2011-2-3 1
5 file1 file 2011-2-3 4
....
正如你所看到的,parent_id指向自己的表的PK ID。與文件夾類似現實世界的約束complys可以包含文件夾,文件不能有孩子,等...
最常用的查詢的情況是:
給出一個id,認定其所有子文件的(包括文件夾和文件),對於每個文件,指示它是否有孩子。
給出一個id,認定其所有祖先的ID(父母,祖父母...)
考慮大規模應用,問題:
- 你認爲架構設計合理?如果沒有,請提出一個建議。
- 對於這兩種情況,我該如何編寫不會影響性能的機器人查詢。
感謝您的任何幫助。
如果parent_id是FK到同一個表0不允許並且必須爲NULL –
確定您希望編寫的查詢並在您在where子句中使用的同一列(按相同順序)上創建索引。 –
請不要考慮......讓我們到1 – bingjie2680