2017-11-25 4 views
0

데이터베이스에 직원 이미지를 저장해야한다는 요구 사항이 있습니다. 파일 테이블을 사용하도록 요청 받았습니다. 이것에 대한 검색 결과를 바탕으로 파일 테이블을 시작하는 방법에 대한 훌륭한 내용을 얻었습니다. 그리고 나는 그 (것)들을 창조하는 것을 처리했다, 또한이 테이블에 자료를 삽입하는 것은 지정된 폴더에 사본 또는 풀만큼 간단하고 자료는 테이블로 삽입된다. 문제는 각 직원 행 세트를 각각의 이미지와 연관시키는 방법입니다. Sample row data from the FiletableSQL 테이블의 기존 테이블에 파일 테이블을 연결하는 방법

전체 플로우는 직원이 자신의 이미지 나 문서를 프런트 엔드를 통해 업로드하여 서버에 이미지를 저장하는 것과 같습니다. 문제는 직원의 참조를 해당 이미지와 함께 추가하는 방법입니다. 하나의 옵션은 FileTable의 name 컬럼을 참조하는 Employee 테이블에 FileName 컬럼을 가질 수 있습니다. 그러나 ID와 관련하여 더욱 효율적인 것이 필요합니다. 이것을 달성하는 다른 방법은 인정 될 것입니다.

답변

0

먼저 SQLSERVER 2012 이후에 소개 된 새로운 기능인 파일 테이블로 바로 작업하는 데 많은 시간이 소요되었습니다. 둘째로 이것은 내가 문제를 해결하기 위해 취한 접근법이다. 나는 다른 개발자들이보다 쉽게 ​​삶을 살 수 있도록 몇 가지 유용한 링크를 제공 할 것이다. 희망이 도움이됩니다.

파일 테이블은 일반적인 SQL 테이블과 거의 비슷하지만 데이터베이스의 별도 섹션 인 테이블 -> FIleTables에 있기 때문에 파일 테이블을 시작하기위한 몇 가지 구성이 있습니다. 테이블 구조가 미리 정의 되었기 때문에 테이블 스키마를 변경할 수 없습니다. 그래서 내가 취한 접근법은 stream_id를 참조 키로 참조하여 저장 프로 시저를 통해 제약 논리를 사용하고 처리하려는 테이블과 연결합니다. 필자의 시나리오에서 Employee 테이블은 stream_id를 통해 File 테이블에 링크되는 stream_id 열을 가지며 File 테이블의 행을 고유하게 만들었고 실제 ID가 아닌 저장된 이미지의 이름으로 Employee Id를 삽입했습니다. 파일. 이 경우 누구나 복사/붙여 넣기로 파일을 직접 삽입하려고해도 Employee 테이블과 아무런 관계가 없으며 원하는 권한을 부여하기 위해 액세스 권한을 제공 할 수도 있습니다. 자세한 내용은 링크를 확인하십시오. 그게 전부입니다. 약간의 개조를 통해 내 문제를 해결할 수있었습니다. 아래의 SQL 스크립트는 한 번에 인스턴스 수준에서 파일 스트림을 활성화하는 데 유용합니다. 매우 도움이됩니다

EXEC sp_configure filestream_access_level, 2 
RECONFIGURE 
GO 

--For new DB 
CREATE DATABASE <DATABASE name> 
WITH FILESTREAM 
( 
NON_TRANSACTED_ACCESS = FULL, 
DIRECTORY_NAME = N'<DIRECTORY name>' 
); 
GO 

--If you have an existing DB 
ALTER DATABASE <DATABASE name> 
ADD FILEGROUP <File group name> 
CONTAINS FILESTREAM 
GO 

ALTER DATABASE <DATABASE name> 
ADD FILE (NAME='<File group name>', FILENAME='<DIRECTORY name>') 
TO FILEGROUP <File group name> 
GO 

ALTER DATABASE <DATABASE name> 
SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'<File 
group name>') 
GO 

use <DATABASE name> 
GO 
CREATE TABLE <Filetable NAME> AS FileTable; 
GO 

또한 몇 가지 링크 :

https://www.mssqltips.com/sqlservertip/2667/filetable-feature-in-sql-server-2012/

http://sql-articles.com/articles/general/working-with-filetables/

https://michaelfirsov.wordpress.com/working-with-sql-server-file-tables-part-1/

https://michaelfirsov.wordpress.com/working-with-sql-server-file-tables-part-2/

,825,735,

감사합니다.