2011-01-13 5 views
2

두 개의 별도 프로세스가 있으며 각 프로세스는 자체 데이터베이스 연결을 통해 제품 레코드를 테이블에 삽입합니다. 프로세스가 테이블에 제품을 삽입하기 전에 동일한 특성을 가진 제품이 이미 존재하는지 확인합니다. 제품이 이미 존재하면 프로세스는 하나의 필드를 수정하고 제품을 저장합니다. 그렇지 않으면 프로세스가 새 제품을 작성합니다.Rails를 사용하여 여러 연결에서 중복 레코드 방지

나는 트랜잭션에서 찾기와 생성을 감싸고 있지만 ActiveRecord 트랜잭션은 단일 데이터베이스 연결에서만 작동하기 때문에 복제 된 제품이 여전히 삽입됩니다.

ActiveRecord와 Rails를 사용하여 여러 데이터베이스 연결에 중복 제품이 삽입되는 것을 방지하는 가장 좋은 방법은 무엇입니까?

답변

1

테이블에 multi-field key을 만들면 해당 필드의 고유 한 조합이 적용됩니다. 그런 다음 앱에서 데이터베이스 INSERT 오류를 감시 할 수 있습니다.

+0

정확히, 데이터베이스가 여기에있는 단일 진원입니다. * 삽입 할 제품이 고유한지 결정하십시오. –

+0

감사. 그게 내가 지금 갈거야. –