나는 사용자가 디렉토리 (애플 리케이션에서는 윈도우가 아닌)를 빌드하는 프로그램을 만들고 있는데,이 폴더에는 서브 폴더가있다. 모든 폴더에는 폴더 또는 문서가 있어야합니다. 사용할 수있는 최상의 데이터 구조는 무엇입니까? 사용자는 하위 폴더를 선택하고 하위 폴더 및 하위 폴더에서 문서를 검색 할 수 있습니다. 폴더 나 하위 폴더 수준을 제한하고 싶지 않습니다.디렉토리 구조에 사용되는 데이터 구조는 무엇입니까?
답변
이 내가 할 것입니다 : ID와 ParentID : 데이터베이스에
모든 기록은 두 개의 필드가 있습니다. ID는 4-5 자입니다 (Base36, a-z : 0-9 또는 이와 유사한).
ID ParentID Name
0000 NULL ROOT
0001 0000 Folder1
0002 0000 Folder2
0003 00000002 Folder3
0004 0000 Folder4
0005 00000004 Folder5
0006 000000040005 Folder6
내가 좋아하는 :
Root
Folder1
Folder2
Folder3
Folder4
Folder5
Folder6
다음과 같이 표현된다 : 부모 ID는
그래서 ...
이 구조는 ... 부모의 전체 구조의 연결입니다 이 구조 때문에 폴더 아래에있는 모든 파일을 찾아야 할 경우 다음과 같은 쿼리를 수행 할 수 있습니다.
68,856,319,폴더와 모든 자식을 삭제하려면 :
DELETE FROM Folders WHERE ID='0004' AND ParentID LIKE '00000004%'
폴더와 아이를 이동하려면 새 부모로, 같은 부모를 사용하는 모든 레코드를 업데이트해야합니다.
그리고 폴더 또는 이에 대한 분명한 한계가 하위 폴더의 번호가 ParentID 필드의 크기로 제한되어 있다는 것입니다 하위 수준
을 linit 싶지 않아요.
각 폴더/문서에 "크기"필드를 추가하면 모든 부모의 크기를 업데이트하는 방법은 무엇입니까? – tuananh
난 당신이를 구성 할 수있는 몇 가지 방법을 생각할 수 있지만, 아무것도 분명 이길 것 :
은 실제 파일 시스템을 사용합니다.
Modded down,하지만 정말로, 이것은 유일한 정상적인 대답입니다! –
왜? 경솔한 것으로 오지 않으려 고하지 않는 것이 나의 질문입니다. – iokevins
누군가가 메모리에 스냅 샷을 보관하여 IO가 최소이고 쓰기 만하는 경우에는 어떻게해야합니까? 그 때 무엇? ... 실제 파일 시스템을 사용하는 것은 고성능 시스템을위한 옵션이 아닙니다. –
좀 나는 문제는 특히 데이터 구조를 요청하는 것을 알고 tree data structure
의 종류하지만 ...를 사용으로 보일 것이다
당신은 어쩌면 당신은을 사용할 수있는 객체 지향 언어를 사용하는 경우구조와 같은 계층 트리 구조에 이상적으로 적합한 복합 디자인 패턴. 당신은 당신이 요구하는 것을 얻습니다.
대부분의 OO 언어는 파일 시스템에 대한 일종의 추상화가 있기 때문에 시작할 곳이 있습니다. 필요한 경우 서브 클래스를 작성하십시오.
예를 들어 디렉터리를 개체의 배열로 예상합니다.
당신은 내가 B + 트리를 추천한다 m-방법 트리 데이터 구조
이것은 주석이어야한다. –
을 사용할 수 있습니다 .... 당신은 쉽게 색인 (페이지, 폴더 등)을 모두 사용할 수 있습니다.
대한 추가 정보를 원하시면B+ Tree http://commons.wikimedia.org/wiki/File:Btree.png
: http://ozark.hendrix.edu/~burch/cs/340/reading/btree/index.html
- 1. 이 계층 구조에 가장 적합한 개체 기반 데이터 구조는 무엇입니까?
- 2. PHP 클래스 : 사용할 디렉토리 구조는 무엇입니까?
- 3. java의 tcp/ip를 통해 통신하는 데 사용되는 데이터 구조는 무엇입니까?
- 4. android 디렉토리 구조는 어떻습니까?
- 5. 이 데이터 구조는 무엇입니까?
- 6. java에서 사용할 올바른 데이터 구조는 무엇입니까?
- 7. Eclipse에서 Maven 디렉토리 구조에 누락 된 디렉토리
- 8. 데이터 구조는
- 9. 사용할 C# 데이터 구조는 무엇입니까?
- 10. 쿼리 캐싱을위한 데이터 구조는 무엇입니까?
- 11. Eclipse의 구조는 무엇입니까?
- 12. Inode 번호의 데이터 구조는 어떻습니까?
- 13. 데이터 구조는 lisp로
- 14. 포인터의 실제 구조는 무엇입니까?
- 15. 데이터 구조에 대한 리소스
- 16. ASP.NET MVC에서 뷰 파일/디렉토리 구조는 무엇이되어야합니까?
- 17. Win32 API에서 제공하는 데이터 구조는 무엇입니까?
- 18. C#에서이 배열에 적합한 데이터 구조는 무엇입니까?
- 19. 가장 고통스러운 DataTable 대체 데이터 구조는 무엇입니까?
- 20. MySql에서 사용 된 데이터 구조는 무엇입니까?
- 21. 개체의 평가 순서에 사용할 데이터 구조는 무엇입니까?
- 22. 키워드를 보관할 가장 효율적인 데이터 구조는 무엇입니까?
- 23. 이 상황에 적합한 데이터 구조는 무엇입니까?
- 24. 지도의 트리에 대한 최적의 데이터 구조는 무엇입니까
- 25. 파이썬 트리플 데이터를위한 데이터 구조는 무엇입니까
- 26. 풀 컨테이너에 대한 최적의 데이터 구조는 무엇입니까?
- 27. 서블릿은 Tomcat의 디렉토리 구조에 어디에 넣어야합니까?
- 28. Team Foundation Build가 플랫 디렉토리 구조에 포함됨
- 29. 각 파이썬 데이터 구조에 대한 함수는 무엇입니까?
- 30. 파일 데이터 구조에 관한 질문?
사양에서 판단이 폴더는 폴더와 문서의 혼합물을 포함 할 수 없습니다? 그리고 당신은 빈 서브 폴더를 가질 수 없습니까? 정확하십시오. –
사실, 한 부분은 폴더에 혼합물이 들어 있지 않을 수도 있다고 말합니다. 또 다른 부분은 그들이 할 수도 있음을 암시합니다. –