이것은 초보자가 아닌 수준의 기본적인 질문입니다. 이것은 Backendless에만 해당됩니다.백엔드에서의 양방향 관계 - 상호 연관성이 높은 데이터로 작업하기
몇 가지 형태로 서로 연관되어 있고 다양한 방향에서 탐험해야하는 작은 테이블 세트로 작업하면서 여러 가지 시나리오를 해결할 수 있기를 바랍니다.
기본 예제는 PersonTable 및 AddressTable과 같은 것입니다. 주소록과 streetName, houseNumber 등의 다양한 속성을 포함하는 주소록을 포함하는 PersonTable
주 내비게이션에서 사용자에게 두 가지 별개의보기를 제공하고 더 자세히 조사하기.
View1 : "사람"을 클릭하면 PersonTable에서 사람들의 목록을 가져옵니다. 이 목록은 보조 탐색 창에 나타납니다. 개인을 클릭하면 그 사람과 관련된 주소/주소가 제공됩니다.
그러나 나는 또한 역으로이 작업을 수행 할 수 있도록하려면 :
뷰 2 : 당신은 "주소"를 클릭, 당신은 AddressTable에서 주소의 목록을 얻을. 이 목록은 보조 탐색 창에 나타납니다. 개별 주소를 클릭하면 해당 주소와 관련된 사람/사람이 제공됩니다.
따라서 단방향 접근 방식에서 PeopleTable과 AddressTable 간의 관계가 있습니다. 이것은 뷰 1에 완벽하게 적합합니다. 하나의 쿼리는 보조 탐색을위한 데이터를 제공하며 해당 쿼리의 결과에는 드릴 다운에 필요한 관계 데이터가 포함될 수 있습니다.
그러나보기 2를 지원하려면 관계의 방향과 시작 위치에서 두 가지 쿼리를 수행해야합니다.
더 많은 테이블과 필드가있는 더 큰 데이터 세트로이 값을 확장하면 내 관심이 더 분명해질 수 있습니다. 초기 보조 탐색 항목 작성시 관계의 부모로부터 일부 데이터를 실제로 제공하려고하기 때문에. 즉, 항목을 나열하는 해당 테이블의 초기 쿼리와 초기 목록에 표시된 데이터를 완성하기 위해 각 개별 항목에 대한 쿼리 (관계에서 부모가 필요로하는 데이터를 얻는 쿼리)를 의미합니다. (그런 다음 항목을 클릭하면 더 자세한 정보가 제공됩니다). 분명히이 관계가 바뀔 수 있고 나는 부모 데이터가 아닌 자식 데이터를 가져올 것입니다. 그러나 다른 방향 (다른 뷰)의 데이터를 원할 때 나는 다시 같은 상황에 있습니다.
TL : 나는 어떤 방향 으로든 테이블을 트래버스하고 데이터를 드릴링 할 수 있어야하며 주어진 경우에 필요한 쿼리 수를 최소화해야합니다. 많은 관계가 보장되는 경우입니까?
질문의 근원에 도달하기 : 나의 이해는 Backendless가 지원하지만, 일반적으로 양방향 관계는 (적어도 SQL 세계에서는) 눈살을 찌푸리게됩니다.
그래서 실제로 가장 좋은 방법은 무엇입니까? 단순히 논리적 인 "쿼리를 줄이는 데 도움을 줄 때 관계 만들기"입니까?
자동로드가 내 관심사가 아닙니다. 테이블에 걸쳐 레코드를 관련시키는 것에 관심이 있습니다. 다른 테이블의 연관된 레코드를 포함하는 각 테이블의 필드를 갖는 것이 더 효율적입니다. 필자는 모든 PersonTable을 조회하여 특정 Address 레코드와의 관계를 갖는 모든 레코드를 찾지 않고 관련 Person 레코드의 정확한 ID를 특정 Address 레코드에서 직접 가져올 수 있다는 것을 알고 있습니다. 그것은 연관된 레코드에 대한 포인터를 유지하는 복잡성이 낮아진 것처럼 보이고, 나의 이해는 이것이 백엔드리스의 관계가 무엇인지에 대한 것입니다. –
데이터를 자동로드하는 경우에만 관계를 쿼리 할 필요가 없습니다. – Wain