频繁关系关系查询的数据库模式

时间:2017-04-13 06:56:42

标签: firebase firebase-realtime-database database-schema jsonschema nosql

我的应用程序是一种社交分享平台,严重依赖于搜索朋友的朋友/第二学位关系/关系关系

因此,我正在寻求有关此应用程序的最佳架构的帮助。

应用程序设置每个用户都拥有一个可分享的财产,称为" Thing"并住在一个"位置"。每个用户都有他/她的朋友&这些朋友有自己的朋友(朋友之间有一些重叠)。

用例 当用户需要" Thing" (或者因为他用完了或者在不同的位置),他只是在应用程序中执行基于位置的搜索。搜索返回该位置的朋友列表,其中包含" Thing"并且还返回朋友的朋友列表,他们也有#34; Thing"。然后,用户通过应用程序的聊天功能向他的直接朋友发送消息。但更重要的是,用户要求他的朋友转发他的消息请求"他们的朋友符合标准(位置和事情)。

搜索数据库查询 - 预期结果此关系关系搜索应返回二维数组:[朋友] [此朋友的匹配搜索条件的朋友列表]

数据模型用户被建模为Person类。这是非常简单和裸骨。

数据库架构的其他期望: 存储聊天记录并存储个人资料照片

注意:我在Angular4中开发。

非常感谢您的帮助!

// List of things of type string (in total 12)
import { Thing } from './thing.enum';

// Gender enum = MALE, FEMALE, UNKNOWN
import { Gender } from './gender.enum';

export class Person {
     public firstName: string;    
     public lastName: string;     
     public age: number;          
     public gender: Gender;       
     public phone: number;        

     // Users share Things
     public thing: Thing;        // User can only have 1 of 12 possible "Things"

     public city: string;              
     public country: string;           
     public countryISO: string; 
     public postalCode: string;        
     public placeID: string;           // Google Places API identifier
}

0 个答案:

没有答案