2011-09-05 4 views
0

파일을 업로드하고 이진 데이터로 SQL 데이터베이스에 저장하는 스크립트를 만들었습니다. 서버의 폴더에 파일을 업로드하고 데이터베이스에있는 링크 만 저장하는 것이 더 좋습니까?C# windows 양식을 사용하여 파일을 업로드하는 방법은 무엇입니까?

그렇다면 어떻게해야합니까?

+1

파일이 메가 바이트보다 큰 경우 FILESTREAM을 사용하십시오. http://technet.microsoft.com/en-us/library/bb933993.aspx –

+0

어떤 데이터베이스를 사용합니까? 그것은 MS SQL입니까? – Artemix

답변

1

이 정보는 서버에 업로드 할 것으로 예상되는 파일의 크기와 이러한 파일의 수 및 이미지 데이터가 서버에서 요청되는 빈도에 따라 달라집니다.

파일이 충분히 작 으면 DB에 저장하면 기본 제공 SQL Server 데이터 무결성 메커니즘을 사용할 수 있습니다. 데이터베이스 백업은 이미지 데이터와 자동으로 동기화됩니다. 그러나 큰 파일은 데이터베이스를 '무겁게'만듭니다.

DB에 파일을 저장하도록 선택한 경우 이미지 용 특수 테이블을 만드는 것이 좋습니다. 별도의 테이블에 이미지를 저장하는 이점은이 전용 테이블에 대한 요청이 필요한 경우에만 발생한다는 것입니다 (예 : 사용자가 이미지 작성자를 요구하고 시간 이미지를 만들 때 DB 서버는 이미지 메타 데이터가 포함 된 간단한 테이블을 사용합니다). 또 다른 이점은 일부 데이터베이스 (MS SQL)가 다른 디스크에 테이블을 넣을 수 있으므로이 무거운 테이블을 별도의 디스크에 넣을 수 있다는 것입니다.

이미지 파일에 대한 링크 만 저장하려는 경우 데이터 무결성을 직접 구현해야합니다. 데이터베이스 백업을 수행 할 때 이미지를 백업해야합니다. DB에 존재하지 않는 파일을 가리키는 링크가없고 DB 등에서 링크가없는 파일이 없는지 확인해야합니다.이 옵션은 DB를 경량화하지만 추가 코딩 및 유지 관리가 필요합니다.

관련 문제