我的应用程序是一种社交分享平台,严重依赖于搜索朋友的朋友/第二学位关系/关系关系。
因此,我正在寻求有关此应用程序的最佳架构的帮助。
应用程序设置每个用户都拥有一个可分享的财产,称为" 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
}