문제

그래서,당신이 작성한 웹 응용 프로그램고 당신은 몇 가지 영역의 사이트 사용자가 파일을 업로드 할 수 있습니다.나의 기본적인 일 방법에 대한 이를 저장하는 실제 파일에서 서버는 데이터베이스에 테이블을 연결하는 저장된 파일 이름을 기록에 관한.

나의 질문은 이것입니다:가 있어야 다른 테이블이 각각""유형의 파일입니까?또한,한 파일을 저장될 상황에서 관련 위치 서버에서는 모두 함께?

몇 가지 예:사용자 프로필 사진,작업 응용 프로그램 CVs,관련 문서에 CMS 페이지,등등.

도움이 되었습니까?

해결책

귀하의 예제에서,거기에 인수에 대한 두 테이블에,당신은 파일과 연결할 수 있는 다른 두 가지입니다.

  • CVs,사진과 연결된 사용자.
  • 첨부파일은 연결된 CMS 페이지입니다.

을 넣는 경우 이러한에서 한 테이블(그리고 당신이 원하는 사용자가 허용하는 둘 이상의 사진이나 cv)그런 다음 필요하신 두 가지의 링크-테이블을 연결하는 파일->사용자와 파일->cms_pages.틀림없이 이 의미 HABTM 관계가 정확하지 않다고 할 수 있습에 대한 일치하지 않는 데이터입니다.

두 테이블에 접근 방식이 약간 청소기만 허용할 파일과 관련된 올바른 형식의 엔티티와 함께 간단한 belongsTo 관계입니다.

그러나 내가 있다는 것을 생각하지 않은"오른쪽"이 질문에 대답하지 않는 한,당신을 저장할 필요가 다른 형식의 메타데이터에 대한 다른 파일 형식.

또한 반드시 저장하거나,계산할 수 있고,mime 형식에 대한 각각의 파일을 수 있습니다 그래서 올바르게 제공을 브라우저가 올바른 HTTP 헤더가 있습니다.

다른 팁

에서 무엇을 말했듯이 나는 단지 저장된 파일에 임의의(UUID 또는 무엇을 하지)파일 이름에서 하나의 장소입니다.나는 다음'첨부'테이블이나 뭔가에 대한 참조를 포함하는 모든 외부 파일이 있습니다.이 테이블도 포함하에 대한 메타 데이터는 파일 그래서 어떤 종류의 파일(그림,이력서 등)등입니다.

이 어려울 수 있습니다 제한하는 파일의 수에서 하나 디렉토하지만,무엇에 따라 FS 당신이 사용하고 있습니다.

을 수 있는 다양한 이유로 저장하기 위해 서로 다른 파일에 다른 위치.

첫째,의 수에는 제한 하나의 디렉토리에 파일을 수 있는 고려 사항입니다.

둘째 보안 문제가 될 수 있습니다-만약 일부를 공개적으로 볼 수 있는(이러한 프로필 사진에 대한 예)하지만 다른 사람은 없습니다(예:CVs)다음 그들을 배치하에서 다른 디렉토리는 것 보다 쉽게 관리할 수 있습니다.

셋째,간단한 관리는 작업을 쉽게 할 수 있다면 파일은,브라우징에서 파일 탐색기에 예를 들어,또는 백업 관리 또는 응용 프로그램을 수정하여 분할 파일 저장소는 여러 위치.

또한 문제의 파일명이 충돌하지만,이름을 변경하는 경우 모든 데이터베이스와 일치하도록 id 분야(예)그런 다음 이되지 않을 것이 문제입니다.

그러나 끝에서의 하루는 아마존에 볼륨과 당신의 자신의 취향입니다.

다른 테이블에 대한 각각의 파일 형식만 관련된 저장할 경우 기타 메타데이터(따라서,추가 열)각 유형의 파일입니다.는 경우에 당신의 테이블에 대한 각각의 파일 형식만 포함 같은 열을(예를 들어,파일명,파일 형식,dateuploaded,etc.)그 다음 것은 의미가 그들 모두가 하나이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top