哪种数据模型更好



我正在处理一个项目,并试图为它创建数据模型。我们有一个用例,用户可以主持一个事件并向其添加成员。

class Event {
event_name: String
}
class User {
username: String
}

我想知道以下哪种方式将事件成员存储在event类中。

//v1
class Event {
event_name: String,
event_members: Array<String> // List of usernames
}
//v2
class Event {
event_name: String,
event_members: Array<User> // List of user objects
}

通过使用v2,我觉得我将能够将获取用户信息的逻辑从数据库、客户端移动到服务器。

延迟也是我正在考虑的问题。如果我使用v1,那么我需要多次调用服务器来获取有关事件成员的所有信息,这会增加等待时间。然而,在v2中,响应有效负载正在增加,这可能会影响我们的网络呼叫。

我想知道在这两种方式中,哪一种存储我的模型更好,如果有不同的、更有效的方式,请告诉我。

没有单数"更好";数据模型。在NoSQL数据库中建模数据时,它总是取决于您的用例。随着您在应用程序中添加更多用例,您将扩展和修改数据模型以满足您的需求。

也就是说,我通常存储多对多关系的两个方向,所以v1v2。这允许在两个方向上快速查找相关项目,但需要一些额外的存储空间,因此这是一种典型的时间与空间的权衡。

但正如所说:没有单一的最佳数据模型,当你刚开始的时候,我通常会专注于让一个简单的模型快速工作,并确保对这些数据的访问。

为了更好地介绍这个主题,我建议阅读NoSQL数据建模,并特别观看Todd的优秀的Getting to know Cloud Firestore系列。

相关内容

最新更新