Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 哪种数据模型更好?_Node.js_Database_React Native_Performance_Google Cloud Firestore - Fatal编程技术网

Node.js 哪种数据模型更好?

Node.js 哪种数据模型更好?,node.js,database,react-native,performance,google-cloud-firestore,Node.js,Database,React Native,Performance,Google Cloud Firestore,我正在做一个项目,并试图为它创建数据模型。我们有一个用例,用户可以主持一个事件并向其中添加成员 class Event { event_name: String } class User { username: String } 我想知道以下哪种方法可以将事件成员存储在事件类中 //v1 class Event { event_name: String, event_members: Array<String> // List of usernames }

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

class Event {
   event_name: String
}

class User {
   username: String
}
我想知道以下哪种方法可以将事件成员存储在事件类中

//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
}
//v1
班级活动{
事件名称:字符串,
事件\ U成员:数组//用户名列表
}
//v2
班级活动{
事件名称:字符串,
事件\u成员:数组//用户对象列表
}
通过使用v2,我觉得我能够将逻辑从数据库从客户端移动到服务器,以获取用户信息

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

我想知道,在这两种方法中,哪种方法更适合存储我的模型,如果有其他更有效的方法,请告诉我。

这里没有单一的“更好”数据模型。在NoSQL数据库中建模数据时,它始终取决于您的用例。当您向应用程序添加更多用例时,您将扩展和修改数据模型以满足您的需要

也就是说,我通常存储多对多关系的两个方向,因此v1和v2都存储。这允许在两个方向上快速查找相关项,但要花费一些额外的存储空间,这是一个典型的时间和空间权衡

但正如前面所说:不存在单一的最佳数据模型,当您刚刚开始工作时,我通常会专注于让一个简单的模型快速工作,并确保对该数据的访问

为了更好地介绍这个主题,我推荐阅读,Firestore特别推荐阅读Todd的优秀系列。

这里没有单一的“更好”数据模型。在NoSQL数据库中建模数据时,它始终取决于您的用例。当您向应用程序添加更多用例时,您将扩展和修改数据模型以满足您的需要

也就是说,我通常存储多对多关系的两个方向,因此v1和v2都存储。这允许在两个方向上快速查找相关项,但要花费一些额外的存储空间,这是一个典型的时间和空间权衡

但正如前面所说:不存在单一的最佳数据模型,当您刚刚开始工作时,我通常会专注于让一个简单的模型快速工作,并确保对该数据的访问

为了更好地介绍这个主题,我推荐阅读,对于Firestore,我特别推荐观看Todd的优秀系列