首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该将其保存在同一个用户集合中还是创建另一个集合?

根据具体情况,您应该根据以下几个因素来决定是将数据保存在同一个用户集合中还是创建另一个集合:

  1. 数据关联性:如果数据之间存在关联性,例如用户信息和订单信息,可以考虑将它们保存在同一个用户集合中,以便于查询和管理。
  2. 数据访问频率:如果某些数据被频繁访问,而其他数据很少被访问,可以考虑将频繁访问的数据保存在一个集合中,以提高访问效率。
  3. 数据安全性:如果某些数据具有较高的安全要求,例如用户密码或个人隐私信息,可以考虑将其保存在单独的集合中,并采取额外的安全措施进行保护。
  4. 数据增长性:如果数据量很大,并且预计会持续增长,可以考虑将其保存在单独的集合中,以便于扩展和管理。

综上所述,根据数据的关联性、访问频率、安全性和增长性等因素,您可以综合考虑决定是将数据保存在同一个用户集合中还是创建另一个集合。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用模式构建:文档版本控制模式

但是通过使用文档版本控制模式,我们可以避免使用多个系统来管理当前文档及其历史,方法是将它们保存在同一个数据库。...然后,数据库将会有两个集合:一个集合具有最新的(和查询最多的数据),另一个具有所有数据的修订版本。 文档版本控制模式对数据库以及应用程序的数据访问模式做了一些假设。 1....当客户更改了受的具体项目时,这一信息需要随之更新,而同时之前的历史记录也需要保留。这在业主或承租人这样的保单相当常见。...当客户购买新项目并希望将其添加到其保单时,将使用current_policy文档创建一个新的policy_revision文档。...这些将保存在current_policies集合,并且在进行更改时,policy_revisions集合将保留更改的历史记录。 文档版本控制模式相对容易实现。

1K20

聊聊 TCP 长连接和心跳那些事

短连接:每次通信时,创建 Socket;一次通信结束,调用 socket.close()。这就是一般意义上的短连接,短连接的好处是管理起来比较简单,存在的连接都是可用的连接,不需要额外的控制手段。...稍微说一下 FD 这个参数,他代表了文件句柄,每新增一条连接都会占用新的文件句柄,如果你在使用 TCP 通信的过程中出现了 open too many files 的异常,那就应该检查一下,你是不是创建了太多的连接...我们主要关注 NettyHandler 的长连接,服务端同时维护一个长连接的集合是 Dubbo 的设计,我们将在后面提到。 5 连接的活 这个话题就有的聊了,会牵扯到比较多的知识点。...看来,应用层面的连接还是必须要做的。 7 连接的活:应用层心跳 终于点题了,文题中提到的心跳便是一个本文想要重点强调的另一个 TCP 相关的知识点。...9 注意和 HTTP 的 KeepAlive 区别对待 HTTP 协议的 KeepAlive 意图在于连接复用,同一个连接上串行方式传递请求-响应数据 TCP 的 KeepAlive 机制意图在于活、

3K20
  • 多数据模型数据库 | 应用实例解析

    还是图数据库? 在软件领域一直存在一种理论:“one size does not always fit all”,但是该理论是否正确,业界的众多专家一直争论不休。...该理论建议大型的软件不同的模块应该采用不同的数据模型进行数据管理。这也就意味着在同一个工程,你不得不采用多个数据库,但这样做又引入了新的问题:运维和管理的复杂、数据一致性和数据重复的问题等。...其实数据存储在一个集合还是多个集合,对于图来说无关紧要,但是对数据按照分类组合成多个不同的集合,更利于定义和构建二级索引,而二级索引可以使我们的某些特定条件的查询性能更高。...2、用户定义的复杂数据结构 任何处理用户定义的复杂数据结构的程序都可以从document存储的灵活性受益,并且可以通过图对这些复杂的数据结构和关系进行管理。...11、实时推荐引擎 电子商务系统实时推荐引擎会为客户提供合理有效的实时购买建议,这实质上是对图数据库的路径进行模式匹配查询,比如系统希望向客户A推荐已经被另一个与客户A存在某种联系的客户B已经购买的东西

    1.8K10

    C# API的模型和它们的接口设计

    命令式验证的另一个限制是它需要使用共享接口,这样才能让应用程序的其余部分通过一致的方式触发验证。 空表单问题 当用户创建新记录并未填写所有必填字段时,就会出现空表单问题。...由于这个错误,没有人可以实现带有批量更新支持的INotifyCollectionChanged,除非他们100%确定集合类不会被用在WPF。 因此,的建议是不要试图从头开始创建自定义集合类。...集合的属性变更通知 .NET另一个“缺失的接口”是能够检测集合某个项目属性何时发生变化。比方说,你有一个OrderCollection类,并且需要在屏幕上显示TotalPrice属性。...为此,集合需要在将对象添加到集合或从集合移除时附加和移除事件处理程序。 变更跟踪和撤消 虽然使用不是很频繁,.NET还是提供了专门用于跟踪对象变更的接口,这些接口甚至还提供了撤消功能。...这里存在同样的问题,即这个方法适用于本地对象还是子对象。 通常假设RejectChanges会遍历对象图,并拒绝所有挂起的变更。

    1.6K20

    深入理解Kafka必知必会(上)

    按消息键序策略:一旦消息被定义了 Key,那么你就可以保证同一个 Key 的所有消息都进入到相同的分区里面,由于每个分区下的消息处理都是有顺序的,故这个策略被称为按消息键序策略 List<PartitionInfo...Sender 线程负责从 RecordAccumulator 获取消息并将其发送到 Kafka 。...Sender 线程负责从 RecordAccumulator 获取消息并将其发送到 Kafka 。 Kafka的旧版Scala的消费者客户端的设计有什么缺陷?...消费者提交消费位移时提交的是当前消费到的最新消息的offset还是offset+1? 在旧消费者客户端,消费位移是存储在 ZooKeeper 的。...一个消费线程可以消费一个或多个分区的消息,所有的消费线程都隶属于同一个消费组。 消费者程序使用单或多线程获取消息,同时创建多个消费线程执行消息处理逻辑。

    1K10

    重构-改善既有代码的设计:重新组织数据的16种方法(六)

    在分布式和并发系统,不可变的值对象特别有用,因为你无需考虑它们的同步问题。 值对象有一个非常重要的特征:它们应该是不可变的。无论何时,只有你调用同一对象的同一个查询函数,都应该得到同样结果。...如果发现双向关联不再有存在价值,就应该去掉不必要的一条关联。...取值函数不该返回集合自身,因为这会让用户得以修改集合内容而集合拥有者却一无所悉。也会对用户暴露过多对象内部数据结构信息。如果一个取值函数确实需要返回多个值,它应该避免用户直接操作对象内所保存的集合。...并隐藏对象内与用户无关的数据结构。 另外,不应该为这整个集合提供设值函数,但应该提供用以为集合添加/移除元素的函数。这样,集合拥有者就可以控制集合元素的添加和移除。...即使一个类型码不会因其数值的不同而引起行为上的差异,宿主类的某些行为还是可能更适合放置于类型码类,因此你还应该留意是否有必要使用Move Method(搬移函数)将一两个函数搬过去。

    59020

    【数据结构与算法】详解什么是集合,并用代码手动实现一个集合结构

    ,它也是一种数据结构,我们还是需要用代码来实现集合的很多方法。...学习过ES6语法的小伙伴应该知道,ES6新增了一种 Set 数据结构,这就是集合,尽管官方已经向我们提供了这种数据结构,但是为了学习它的思想和实现过程,我们还是来亲自学习实现一下吧,顺便学习一下ES6...delete() 删除集合的某个元素 clear() 清空集合内的所有元素 size() 返回集合内的元素个数 values() 返回集合内的所有元素,保存在数组 union() 获取与另一个集合的并集...intersect() 获取与另一个集合的交集 difference() 获取与另一个集合的差集 subset() 判断是否为另一个集合的子集 四、用代码实现集合 (1)创建一个构造函数 首先创建一个大的构造函数...,需要遍历全部元素,而对象就很方便,直接通过 key 就能获取到集合是否已存在该数据 (2)实现has()方法 has() 方法是用于判断集合是否存在某数据。

    66310

    深入剖析vscode工具函数(十一)Collection

    函数接受两个参数:一个是要进行分组的数据数组 data,另一个是用于生成分组键的函数 groupFn。groupFn 函数接受一个元素作为参数,返回一个键,这个键用于确定元素应该被分到哪个组。...然后在 result 对象查找这个键对应的数组 target。如果这个数组不存在,就创建一个新的空数组,并将其赋值给 result[key]。 然后将当前元素添加到 target 数组。...这样,所有具有相同键的元素都会被添加到同一个数组,实现了分组的效果。 最后,函数返回 result 对象,这个对象包含了所有的分组结果。每个键对应一个数组,数组的元素都是具有相同键的元素。...added 是一个数组,包含了在 after 存在但在 before 存在的元素,即被添加的元素。...你提供的其他代码片段是 has 和 add 方法的实现,这些方法用于检查一个元素是否存在集合,以及将一个元素添加到集合

    17820

    大数据技术之_23_Python核心基础学习_02_ 流程控制语句 + 序列(10.5小时)

    # 代码块: #   代码块中保存着一组代码,同一个代码块的代码,要么都执行要么都不执行。 #   代码块就是一种为代码分组的机制。...3.2.5 if 练习 练习1:   编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。...列表,在系统应该有一个列表,专门用来保存所有员工信息的。...result = s1 ^ s2    # {1, 2, 6, 7} # <= 检查一个集合是否是另一个集合的子集 # 如果 a 集合的元素全部都在 b 集合中出现,那么 a 集合就是 b 集合的子集... False result = {1, 2, 3} < {1, 2, 3, 4, 5}    # True # >= 检查一个集合是否是另一个的超集 # >  检查一个集合是否是另一个的真超集 print

    2.9K30

    从面试角度一文学完 Kafka

    Topic 注册:在 Kafka 同一个 Topic 的消息会被分成多个分区并将其分布在多个 Broker 上,这些分区信息及与 Broker 的对应关系也都是由 Zookeeper 在维护 生产者负载均衡...有时候我们需要相同类型的消息必须顺序处理,这样我们就必须自定义分配策略,从而将相同类型的数据分配到同一个分区。 producer.type 默认值:sync,指定消息发送是同步还是异步。...当然,leader 副本是一直存在于 ISR 副本集合的,在某些特殊情况下,ISR 副本甚至只有 leader 一个副本。...AR 是主题被创建后,分区创建时被分配的副本集合,副本个 数由副本因子决定。ISR:In-Sync Replicas。...Kafka 特别重要的概念,指代的是 AR 那些与 Leader 持同步的副本集合。在 AR 的副本可能不在 ISR ,但 Leader 副本天然就包含在 ISR

    39020

    从面试角度一文学完 Kafka

    Topic 注册:在 Kafka 同一个 Topic 的消息会被分成多个分区并将其分布在多个 Broker 上,这些分区信息及与 Broker 的对应关系也都是由 Zookeeper 在维护 生产者负载均衡...有时候我们需要相同类型的消息必须顺序处理,这样我们就必须自定义分配策略,从而将相同类型的数据分配到同一个分区。 producer.type 默认值:sync,指定消息发送是同步还是异步。...当然,leader 副本是一直存在于 ISR 副本集合的,在某些特殊情况下,ISR 副本甚至只有 leader 一个副本。...AR 是主题被创建后,分区创建时被分配的副本集合,副本个 数由副本因子决定。ISR:In-Sync Replicas。...Kafka 特别重要的概念,指代的是 AR 那些与 Leader 持同步的副本集合。在 AR 的副本可能不在 ISR ,但 Leader 副本天然就包含在 ISR

    1.2K53

    《重构》第八章 - 读后感(重新组织数据)

    9.以字面常量取代魔法数 如果代码存在字面数字,带有特别的含义。那么我们应该创建一个常量,根据其意义为它命名,并将上述的字面数值替换为这个常量。...10.封装字段 在类存在一个public字段,将其申明为private,并提供相关的访问函数。...因为需要修改的代码都集中在同一个地方,而不是星罗棋布的散乱在各处。 11.封装集合 如果有一个函数返回一个集合,那么就让这个函数返回该集合的的一个只读副本,并在这个类中提供添加、移除的函数。...老代码不同的职位所进行的操作都是一样的,因此将共性的操作提炼到父类,采用虚方法或者抽象方法。在创建对象的问题上,因为区分创建的条件还是有一个焦点,因此在父类完成。...但是如果子类只有这样一个常量函数,那么就没有存在的意义。 改造的方法就是将子类的状态码保留到父类,并在子类实例化的时候将其判断的一些状态放到父类新增的字段。然后去掉子类的状态码。

    31620

    C# WPF MVVM开发框架Caliburn.Micro Screens, Conductors 和 Composition⑦

    打开一个新文档会将其添加到屏幕集合并切换到活动屏幕。关闭文档不仅会停用文档,还会将其从屏幕集合删除。所有这一切都取决于它是否正面回答了“你能关门吗?”。...该方法是使用异步模式设计的,允许在做出密切决策时发生复杂的逻辑,如异步用户交互。调用方将向CanClose方法传递一个操作。实现者应该在保护逻辑完成时调用该操作。...关闭项目将停用该项目并将其集合移除。 关于CMs IConductor实现,还没有提到两个非常重要的细节。首先,它们都继承自屏幕。...这就是在Caliburn.Micro创建导航应用程序所需的全部内容。导体的ActiveItem表示“当前页面”,导体管理从一个页面到另一个页面的转换。...Simple MDI 让我们看另一个例子:这一次是一个使用“屏幕集合”的简单MDI shell。

    2.5K20

    iOS的浅复制与深复制

    浅复制:只复制对象的指针,两个对象指向的还是同一个地址的内容,操作一个时会影响另一个的值。 深复制:复制对象的内容,两个对象指向两个不同地址的内容,操作一个时不会影响另一个的值。...在OC,因为采用内存计数的方式管理内存,所以浅复制时会对同一个内容计数加一,深复制则不会。 在OC,复制操作有copy和mutableCopy两种方法,那哪种是浅复制哪种是深复制呢?...),copy和mutableCopy都是深复制,都会创建一个新的同样的内容来返回,但是要注意,copy返回的是不可变对象,也就是说即使你对一个NSMutableString做copy操作,返回给另一个NSMutableString...因为浅复制、深复制这两个概念其实并不完全,更准确的应该分为三种:浅复制、深复制、完全深复制。...),copy和mutableCopy都是深复制,都会创建一个新的同样的内容来返回,但是要注意两点,一是copy返回的还是不可变对象,二就是上面说的,这个深复制只是单层深复制,里面包含的元素还是指针浅复制

    51620

    Android常见面试题

    singleTop 模式 如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈已经存在该Activity...如果栈存在该实例,将会创建新的实例放入栈。使用场景如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。...七、集合对象没有及时清理引起的内存泄漏。 通常会把一些对象装入到集合,当不使用的时候一定要记得及时清理集合,让相关对象不再被引用。...热启动:热启动意味着你的App进程只是处于后台, 系统只是将其从后台带到前台, 展示给用户。 介于冷启动和热启动之间, 一般来说在以下两种情况下发生: (1)用户back退出了App, 然后又启动....如onCreate()和onResume()里尽可能少的去做创建操作。 (2)应用程序应该避免在BroadcastReceiver里做耗时的操作或计算。

    1.2K10

    数据库复习资料整理

    ; 属性名是唯一的,不同的列可以出自同一个域,但属性名必须不同; 码的唯一性,即任意两个元组的码不能相同,从而任意两个元组不相同; 列的顺序无关性,即交换任意两列的次序,得到的还是同一个关系; 行的顺序无关性...,即交换任意两行的次序,得到的还是同一个关系; 分量的原子性,即每个分量都是不可分的数据项。...大多数DBMS支持的存取控制策略主要有两种:自主存取控制,强制存取控制 自主存取控制方法的特点如下: ① 同一用户对于不同的数据库对象有不同的存取权限; ② 不同的用户对同一对象也有不同的权限; ③ 用户还可将其拥有的存取权限转授给其他用户...关系的性质 关系是规范化二维表中行的集合 列是同质的,即每一列的分量是同一类型的数据,来自同一个域。 属性名是唯一的,不同列可出自同一个域,但属性名必须不同。...列的顺序无关性,即交换任意两列的次序,得到的还是同一个关系。 行的顺序无关性,即交换任意两行的次序,得到的还是同一个关系。

    23810

    Redis缓存雪崩、缓存穿透等问题的解决方案「建议收藏」

    大家好,又见面了,是全栈君。 缓存雪崩 缓存雪崩是指缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。...这样可以防止攻击用户反复用同一个id暴力攻击 采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的 bitmap ,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对底层存储系统的查询压力...Hash存在一个冲突(碰撞)的问题,用同一个Hash得到的两个URL的值有可能相同。...为了减少冲突,我们可以多引入几个Hash,如果通过其中的一个Hash值我们得出某元素不在集合,那么该元素肯定不在集合。只有在所有的Hash函数告诉我们该元素在集合时,才能确定该元素存在集合。...Bloom-Filter一般用于在大数据量的集合判定某元素是否存在

    39710

    领域驱动设计(DDD)实践之路(一)

    1、领域驱动设计的领域模型 当我们面向业务开发的过程应该首先思考领域模型而不是如何建表。 听过太多业务开发的声音,“面试造航母、工作拧螺丝”,日常工作就是建表写增删改查。...2、Repository “对于每种需要进行全局访问的对象,我们都应该创建另一个对象来作为这些对象的提供方,就像是在内存访问这些对象的集合一样。为这些对象创建一个全局接口以供客户端访问。...它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提供给领域层进行领域对象的访问。...其核心还是“解耦”,所以我们应该明确领域层只应该使用Repository获取对象。 接下来,看看DAO与Repository什么区别。...最后来看看为什么需要Repository,理解还是“解耦”。

    1.3K42
    领券