내 레일 프로젝트에는 두 가지 모델 (및 테이블)이 있습니다. 각 모델에는 "주소"필드가 있습니다.ActiveRecord - 테이블간에 중복 된 항목을 방지합니다.
현재 각 모델에서 주소의 고유성을 확인하도록 코드를 설정했으며 동일한 데이터를 저장하려는 여러 연결의 경우 중복을 방지하기 위해 각 테이블에 주소 색인이 있습니다.
그러나 Address 필드가 두 테이블에서 고유 한 인지 확인하고 싶습니다. 에서처럼 주소가 한 테이블에 있으면 두 번째 테이블에 저장할 수 없습니다.
그 코드를 해결하는 것이 어렵지는 않지만 비 고유 값이 저장되지 않도록 데이터베이스 수준 (인덱스와 유사)에서이 검사를 어떻게 구현합니까?
«데이터베이스 수준»에 대한 질문은 태그 및 제목을 업데이트하고 DBMS를 지정하는 것이 좋습니다. 그것은 MySQL의 경우 - http://stackoverflow.com/questions/1452097/implementing-unique-across-linked-tables-in-mysql. 하지만 난 오히려 사용자 정의 검증 방법으로 이것을 해결할 것입니다 - 매우 간단합니다. – jibiel
데이터베이스 디자인이 잘못되었습니다. http://en.wikipedia.org/wiki/Database_normalization –