2011-09-15 5 views
0

내 php/mysql 애플리케이션의 파일 시스템에서 문서를 구성하는 좋은 방법이 궁금했다. 문서의 모든 정보는 db에 저장됩니다. 파일 시스템 구성에 대해 궁금합니다. 좋은 방법인가요? 더 좋은 방법이 있습니까?php, mysql - 문서 관리를위한 폴더/파일 조직

클라이언트 당

/documents 

하나 개의 폴더가

/documents/client1 

문서는 사용자 후 클라이언트

/documents/client1/queue 

당 여기에 업로드되는 기본 폴더의 형식은 문서가 데이터베이스에 저장 및 이동 입력 이 폴더에

문서의 17,451,515,
/documents/client1/docs 

원본과 파일 시스템 이름은 데이터베이스에 저장하고 파일 시스템의 이름은 MD5 같은 것입니다 ($ 시간. $ 파일 이름. $ CLIENT_ID) 및 문서 경로는 내가 필요로하는이

/documents/client1/docs/6f99caa11e78697612d8f1b4481cd76a.pdf 

처럼 보인다 (최소) 첫 페이지에서 엄지와 자동 바코드 판독을위한 PDF의 첫 페이지

/documents/client1/docs/6f99caa11e78697612d8f1b4481cd76a/6f99caa11e78697612d8f1b4481cd76a-0.gif 

또한이

/documents/client1/scan 
나는 특정 날짜의 파일을 배치하는 경우는 /문서/CLIENT1/문서 궁금

: 스캐너에서 파일을 사용자가 데이터베이스에서 가져올 수 있으며, 그 후 그들이 이름을 변경하고 이동 그래서가는

다음과 같은 날짜 폴더 :

/documents/client1/docs/20110915/6f99caa11e78697612d8f1b4481cd76a.pdf 

아니면 완전히 다른 폴더 구조를 사용해야합니까?

답변

0

임시 (업로드 된) 파일에 공용 폴더를 하나만 사용하는 이유는 무엇입니까? 유지 보수 루틴을 더 쉽게 만들 수 있습니다 (예 : 모든 오래된 파일 삭제).

내가 같은 날짜 폴더에 특정 날짜에 대한 파일을 배치해야하는지 궁금 : 날짜 인 경우

/documents/client1/docs/20110915/6f99caa11e78697612d8f1b4481cd76a.pdf

데이터베이스에 의해 처리되므로 불필요합니다. 그럼에도 불구하고 어떤 이유에서든이 파일에 수동으로 액세스해야한다면 (인터페이스를 사용하지 않고) 도움이 될 수 있습니다. ...

파일 시스템의 한계를 잘 알고 있어야합니다. 일부 filesytem/os에서는 폴더 당 파일 수에 대한 제한이 있습니다 (여전히 크지 만).

+0

변경 될 수 있습니다 몇 가지 정보에 의존한다는 것이다. 그렇지 않으면 전체 날짜를 내가 definitley 사용해야한다고 생각합니다 적어도 올해 폴더 : /documents/client1/docs/2011/6f99caa11e78697612d8f1b4481cd76a.pdf 지금은 CentOS 5.5 및 우분투를 사용하지만 최대 파일입니다 shure 아니에요 폴더 당. – superfly

0

필자는 파일 이름에 따라 파일 조직을 해시하는 구조를 선호합니다.

/documents/6/f/9/6f99caa11e78697612d8f1b4481cd76a.pdf 

이렇게하면 파일 접근이 편리해지며 필요에 따라 구조를 더 쉽게 만들 수 있습니다.

디렉토리로 날짜를 사용하는 문제는, 파일 위치가 내가 파일 시스템 제한에 대해 생각했다 (우리는 결코 알지 못할!)

+0

내 client1이 자신의 서버에서 모든 파일과 데이터베이스를 원한다면 문제가 생깁니다. 그것은 client1에 대한 파일을 얻는 것이 어려울 수 있지만, 당신의 생각을 좋아해요 :)이 같은 것을 고려하고 있습니다 : /documents/client_id/documents/6/f/9/6f99caa11e78697612d8f1b4481cd76a.pdf – superfly