2017-04-12 1 views
0

사용자가 웹 사이트에 업로드하는 이미지를 호스팅하고 싶습니다.파일 및 데이터베이스 디자인

그러나 웹 사이트 dataBase에 저장하는 방법을 모르겠다. SQL을 사용하는 방법을 알고 있지만 SQL 서버에 1MB 이상의 이미지를 저장하는 것은 좋지 않은 것처럼 보입니다.

내 질문은 : 이미지를 업로드하는 계정이있는 시스템의 경우 웹 서버에 파일 시스템을 만들고 SQL 데이터베이스와 함께 사용 하시겠습니까?

예를 들어 웹 서버에서 이미지 파일을 포함하는 수천 개의 폴더가있는/accounts 폴더를 만듭니다. 그런 다음 SQL 쿼리 등을 사용하여 사용자 이름과 관련 폴더를 찾으십니까?

죄송합니다. 이것이 바보 같은 질문 인 경우,이 주제에 대해 더 자세히 알아보기 위해 무엇을 검색해야할지 모르겠습니다.

+0

데이터베이스는 엄청난 양의 데이터를 저장하는 데 매우 뛰어납니다. 왜 1MB + 이미지를 저장하면 문제가됩니까? – John3136

+0

저는 SQL을 통해 JPEG 파일을 저장하는 것이 효율성면에서 좋지 않다고 읽었습니다. 이것은 사실이 아닌가? – user3695992

+1

두 방법 모두 이유가 있습니다. 예를 들어, 백업/복원 - DB에 이미지를 저장하면 백업에는 이미지의 백업이 포함되지만 백업은 훨씬 더 크고 오래 생성/복원됩니다. 파일 시스템에 저장하면 DB에서 일부 인터페이스로 추출하지 않고도 액세스 할 수 있습니다. 필요한 코드는 적지 만 고아 레코드 (디스크에없는 DB의 파일)에 대해 걱정할 필요가 있습니다. 유지 관리가 까다로울 수 있습니다. –

답변

0

데이터베이스에 이미지를 저장하는 것은 좋지 않은 아이디어입니다. 당신이하려는 일의 규모에 따라 할 수있는 몇 가지 방법이 있습니다.

가장 쉽게 관리 할 수있는 방법은 각 사용자에 대해 고유 한 디렉토리를 만드는 것입니다. 그 방법이 커지면 많은 저장 장치, 가상 서버 및 다른 서버로 분산시킬 수 있습니다. 그런 다음 사용자별로 데이터베이스의 이미지 정보를 추적하십시오.

+0

간단히 말해서 SQL 서버와 서버 로컬 디렉토리를 모두 사용 하시겠습니까? – user3695992

+0

네, 아마도 각 사용자가 소유 한 이미지를 추적하려고 할 것이기 때문입니다. 이미지 이름에 사용자 ID에 대한 외래 키가있는 테이블 인덱스를 작성한 다음 필요에 따라 제목, 업로드 한 날짜 등과 같이 추적중인 이미지 데이터의 나머지 부분을 지정하여 오버 헤드를 줄일 수 있습니다. – Difster

+0

응답 해 주셔서 감사합니다! – user3695992