2013-07-19 2 views
2

Google 드라이브 실시간 API를 사용하여 할 일 목록 앱을 만들 계획입니다. 그것은 계층 적 구조를 가지므로 작업은 하위 작업 등을 가질 수있는 하위 작업을 가질 수 있습니다. 작업은 자유롭게 이동할 수 있습니다. 즉, 형제 간의 위치/색인이 변경 될 수 있음을 의미하지만 작업을 이동할 수도 있습니다 다른 부모에게.Google 드라이브 실시간 API : 정렬 순서를 유지하면서 계층 적 데이터 모델에서 원자 적 업데이트 수행

이제 Realtime API를 사용할 때 이러한 움직임을 최소화해야합니다. 동영상에서 Google 엔지니어는 계층 적 모델을 평면적으로 표현하는 것이 가장 좋은 방법이라고 설명합니다. 각 항목/작업에는 부모를 가리키는 속성이 있습니다. 이 방법은 한 부모의 자식 목록에서 제거하고 새로운 부모의 자식 목록에 추가하는 대신 하나의 작업 만 수행합니다 (두 작업> 원자가 아님).

부모 프로젝트 내에서 하위 작업의 순서를 유지해야하는 경우를 제외하면 내 프로젝트에서 정상적으로 작동합니다. 태스크가 부모 만 알고있을 때 어떻게하면됩니까? 많은 감사, Ruben

답변

0

나는 이것이 작동해야한다고 생각한다 : 각 작업이 권장대로 부모 작업을 가리 키도록한다. 또한 각 작업에 하위 작업의 정렬 된 목록을 유지하게하십시오. 그런 다음 하위 작업 목록을 사용자에게 표시 할 때 올바른 부모를 가리 키지 않는 항목을 필터링하여 제거하십시오. 여러 명의 부모가 동일한 작업을하는 경우가 있지만 사용자에게는 표시되지 않습니다.

경쟁 조건으로 인해 다른 작업 목록에없는 작업이 끝날 위험이 있지만 그럴 수는 없다고 생각합니다.

또 다른 방법은 각 작업에 "정렬 순서"값을 저장하는 것입니다.이 값은 실수입니다. UI는 표시하기 전에 정렬합니다. 두 명의 사용자가 같은 위치에 작업을 추가하는 경우 동일한 값을 얻을 위험이 있지만 두 작업의 순서가 잘 정의되어 있지 않기 때문에 별 문제가되지 않습니다.