2016-08-20 3 views

답변

1

필드의 값에 해시 함수를 사용하여 동일한 테이블의 별도 고유 필드에 저장합니다. 해당 테이블에 삽입 할 때

create table my_table (
    id integer not null primary key, 
    text_content varchar(65535) not null, 
    text_hash varchar(128) not null unique 
); 

, 당신이 계산 SHA256 text_content 필드 해시 및 text_hash 필드에 저장됩니다

그래서 테이블은 다음과 같이 될 것이다. 그렇게하면 text_content 값이 테이블에서 고유하다는 것을 확실히 알 수 있습니다.

DB SIDE 프로그래밍을 좋아한다면, 이 제공하는 트리거에이 로직을 넣을 수 있습니다.

+0

어떻게 충돌을 처리합니까? – Nick

+0

충돌은 ** 매우 드뭅니다 **. 당신이 그들을 찾을 것이라고 생각하지 마십시오. 그것이 바로 그러한 종류의 알고리즘이 설계된 것입니다. 이 질문을 확인하십시오 : http://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice –

+0

이것은 100 % 방탄으로 해결되었을 수 있습니다. 해시 콜리 전 (hash collision)의 경우 이진 비교 + 충돌의 경우 키 고유성 (key uniqueness)을 위해 자동 증가 2 차 필드. 그런 작업을 수행 할 데이터베이스 솔루션이 있습니까? – Nick

관련 문제