mysql 또는 postgresql과 같은 SQL 데이터베이스가 있다고 가정 해보십시오. 사용자와 자동차라는 두 개의 테이블이 있습니다. 한 사용자는 N 대의 자동차를 운전할 수 있고 N 대의 사용자가 자동차를 운전할 수 있으므로 외래 키가 두 개인 세 번째 "드라이브"테이블이 있습니다.SQL과 elasticsearch 간의 올바른 실행
이제 테이블 사용자가 elasticsearch를 사용하기를 원합니다. 이름, 이메일 등으로 사용자를 검색하기를 원하기 때문입니다. 자동차 테이블에서 검색을해야 할 수도 있습니다.
1) SQL 데이터베이스를 포기 :
내가 이것을 달성하기 위해 세 가지 방법을 참조 I 디부 가장 좋은 방법이 무엇인지 알고 싶다. 모든 테이블은 이제 elasticsearch에 있습니다. 원하는 것을 검색 할 수 있지만 모든 제약 조건을 수동으로 처리해야합니다.
2) SQL 데이터베이스에 구조를 유지하고 세 개의 테이블, 기본 키 및 외래 키를 유지합니다. 그러나 귀하의 테이블에는 elasticsearch에 연관된 행의 elasticsearch ID 만 들어 있습니다. 예를 들어 테이블 사용자의 경우 user_id를 유지하고 이름, 전자 메일 등을 찾은 elasticsearch 행을 가리키는 user_elasticsearch_id를 추가합니다. 따라서 SQL 제약 조건이 있으므로 검색을 수행 할 수 있지만 유지 관리해야합니다 두 개의 테이블.
3) 중복. 당신은 당신의 SQL 데이터베이스를 건드리지 않는다. 당신은 elasticsearch 데이터베이스의 모든 행을 복제한다. 당신은 제약 조건을 가지고 있으며, 검색 할 수는 있지만 다시 두 테이블을 유지해야하며 데이터가 두 배, 저장 용량이 두 배가됩니다.
이제 stackoverflow의 용감한 동료,이 경우 어떻게 하시겠습니까?
감사합니다.
이 답변은 도움이됩니다. http://stackoverflow.com/questions/36915428/how-to-setup-elasticsearch-index-structure-with-multiple-entity-bindings/36982705#36982705 및이 역시 도움이됩니다. http : //stackoverflow.com/questions/40410920/elasticsearch-usage-with-mysql/40415430#40415430 – Val
감사합니다.이 글을 읽을 것입니다 :-) –