현재 응용 프로그램을 영역으로 마이그레이션하고 데이터를 연계로 정리하는 최선의 방법을 알아 내려고합니다. 이 질문에 대해서는 내 데이터 모델의 Photo
개체에 초점을 맞 춥니 다. getPopular()
, getNearbyPhotos(lat, lng)
, getUserPhotos(userId)
, getAlbumPhotos(albumId)
, getCollection(type)
:목록에 안드로이드 영역 데이터 정리
내 모든 데이터 객체는 다음과 같은 엔드 포인트와의 API에서 도착합니다. 이 끝점의 대부분에는 sort=best/chronological
과 같은 추가 매개 변수가 있습니다.
우리는 현재 listName
만을 사용하여 객체 목록을 정렬 및 검색 할 수있는 프로젝트에 this non-relational DB을 사용하고 있습니다. 우리는 을 endpoit + 매개 변수의 조합으로 사용합니다. 모든 데이터가 로컬로 사용할 수 있지만 여기에 문제가 그 쿼리에 대한 데이터가 많이 있다는 것입니다 때 잘 작동
realm.where(User.class)
.contains("name", "Doe")
.findAll();
: (관계형 DB 등)
영역처럼, 표준 쿼리를 사용 서버 측에서 유지되고 클라이언트로 전송되지 않습니다. 예를 들어 Photo
모델에는 위치가 포함되지 않으며 best
정렬 점수가 포함되지 않습니다. id
낭포 I과 실제 API 엔드 포인트 및 매개 변수를
public class ListPhoto extends RealmObject {
@PrimaryKey public String id;
public RealmList<Photo> list;
}
및 사용 : 내 현재 테스트 프로젝트에
, 나는 우리의 현재 프로젝트가 같은 개체를 사용하는 것에ListPhoto
비슷한을 만들어 그 주위에 일하고 있어요 '간단하게 그룹화 나는 행복하지 않다 메타 데이터를 주문 저장하는 간단한 쿼리
ListPhoto listPhoto = realm
.where(ListPhoto.class)
.equalTo("id", id)
.findFirst();
하지만 그 접근 방식으로 내가 추상화의 추가 레이어를 만드는거야와 해당 개체를 찾을 수 있어요 내가 여기 물어 :
어떻게 내가 쌓아 놓은이 더러운 해킹을 사용하지 않고 삽입 된 순서와 그룹에 기초하여 영역의 데이터를 쿼리 할 수 있습니까?
편집 : 그것
후속 질문 : Query realm data contained on other object
로컬로 사용할 수없는 필드에 대해 쿼리를 수행 할 수 있으므로 확실하지 않습니다. 사진에 위치/점수 필드가없는 이유는 무엇입니까? 나는 그들이 서버에서 할 수 있다고 상상한다. –
@ TimCastelijns 정확하게, 그들은 서버에 가지고있다. 그러나 시각적으로 사용자에게 표시되지 않는 데이터이기 때문에 클라이언트로 전송되지 않습니다 (저는 Realm으로 마이그레이션하고 싶지만 서버 측 데이터 모델과 endpoit 비헤이비어를 변경하지 않고도 수행하는 것이 좋습니다) – Budius