2016-07-20 4 views
2

나는 온라인 브라우저 게임을위한 친구 목록 크롬 확장 프로그램을 만들고 있습니다. 한 가지 특징은 친구들이 서로 채팅 할 수 있다는 것입니다. 사용하고있는 데이터베이스는 JSON 트리 형식으로 데이터를 저장하는 firebase입니다. 나는이 데이터베이스의 일환으로 채팅을 저장하는 가장 좋은 방법 일 것입니다 무슨 알아 내려고 노력하고있어JSON 트리 데이터베이스에 채팅을 저장하는 가장 좋은 방법은 무엇입니까?

Users 
    | 
    |_USER1 
    |  | 
    |  |__FRIENDS 
    |  
    |_USER2 
      | 
      |__FRIENDS 

:

내 데이터베이스는이 구조를 가지고있다. 내가 지금쪽으로 기울고 있어요 옵션은 다음과 같이 찾고 사용자 디렉토리 모두 자신의 섹션에서 두 명의 사용자가 채팅의 사본을 유지하는 것입니다 :

Users 
    | 
    |_USER1 
    |  | 
    |  |__FRIENDS 
    |  | 
    |  |__CHATS 
    |   | 
    |   |__chat w/USER2 
    |  
    |_USER2 
      | 
      |__FRIENDS 
      | 
      |__CHATS 
       | 
       |__chat w/USER1 

이 너무 각 메시지에 내가 보낼 만들 것 각각의 사용자 섹션에서 하나씩 두 개의 객체를 업데이트해야합니다. 트리는 '키/값'쌍으로 형식화되므로 각 사용자의 CHAT 섹션에서 키는 다른 사용자의 이름이되고 값은 보낸 메일의 목록이됩니다.

이렇게 데이터베이스를 체계적으로 구성 할 수 있습니까? 게임은 꽤 작아서 거대한 트래픽을 기대하지 않습니다.

답변

1

파이어베이스 데이터베이스 (대부분 NoSQL 데이터 스토어)의 경우 데이터를 평평하게하는 것이 가장 좋습니다.

Users 
    | 
    |_USER1 
    |  | 
    |  |__FRIENDS 
    |  
    |_USER2 
      | 
      |__FRIENDS 
UserChats 
    | 
    |_USER1 
    |  | 
    |  |__chat w/USER2 
    |  
    |_USER2 
      | 
      |__chat w/USER1 

이렇게하면 채팅 목록을로드하지 않고도 사용자의 친구 목록을 조회 할 수 있습니다. 1 대화방 식별자 : Best way to manage Chat channels in Firebase

+0

나는 당신의 제안을 받아 데이터베이스의 다른 부분으로 채팅을 분리합니다

또한 1을 구성하는 편리한 제도에 대한이 답변을 확인합니다. 제공된 링크를 통해 각 메시지를 보낼 때마다 개체 1 개만 업데이트하면되므로 그 방법을 시도해 볼 것입니다. 감사. – MarksCode

관련 문제