클래스(모델) 생성은 parse dashboard에서 gui 이용해서 하구요.
스키마 정의는 역시 dashboard에서 할 수야 있는데 안하고 막써요.
(parse dashboard 역시 parse js sdk + react로 만들어진 웹어플리케이션 입니다.)
컬럼은 저장할 때 없으면 만들어지니까요. 타입도 알아서 배정 됩니다.
하지만 백본으로 할때는 포인터를 풀어서 위 형식에 맞게 저장해줘야해서 귀찮아서 포인터관계는 클라우드 코드에서 트리거로 처리하는 편입니다.
a. 포인터를 설정할 id 값을 설정함. (ex: UserId)
b. cloud code의 before save 트리거에서 id를 읽어서 pointer타입 변수에 저장 (ex: User)
a. array pointer include
array타입의 컬럼에 온갖 parse object를 넣어서 저장할 수 있습니다.
심지어 다른 타입의 포인터도 한 컬럼에 섞어서 넣을 수 있습니다.
그리고 불러올때 include한방이면 배열 안의 포인터와 포인터안의 포인터까지 원하는 데까지 전개해서 부를 수 있습니다.
var query = new Parse.Query("Question");
query.include("Institutes,QuestionSelections,QuestionSelections.Institutes");
b. cloud code
Parse.Cloud.run으로 실행 시킬 수 있는 server side 로직을 구현할 수 있습니다.
parse js sdk를 기반으로 작성되는 코드라 앱에서 js sdk로 작성한 코드와 연결해서 작성할 수 있습니다. 쉽게 옮길 수도 있구요.
c. array contained in search
array contained in array, single-value containedIn array, array containedIn single-value 등 쿼리의 편의성이 뛰어납니다.
이게 사실 mongo db 쿼리로도 가능하긴 하지만 이걸 만들려면 대단히 힘든데, parse는 참 잘 정리되어 있죠.