java - 在哪里存储相互引用的对象列表?

标签 java mongodb gwt

我正在使用 Java 进行 Web 开发,后端使用 MongoDB。我有两个需要彼此列表的数据库对象。 ex-

客户对象包含 - List<MediaServer>

MediaService 对象包含 - List<Customer>

1) 我是否应该删除其中一个列表,以免相同的信息存储在两个地方?例如删除媒体服务器的客户列表。当我拉一个客户时,遍历所有媒体服务器以确定客户被分配到哪些媒体服务器。

2) 在 MongoDB 中有没有更好的地方来存储这种类型的信息?

谢谢!

最佳答案

在 MongoDB 中,在多个地方复制数据更为正常。如果您的列表不经常更改,那么存储两个列表并没有真正的缺点 - 现在硬盘空间并不像规范化风靡一时时那样昂贵。

对于 Mongo(以及任何应用程序开发)要始终牢记的一点是弄清楚您的访问模式是什么,并根据频繁的模式创建您的模式。如果您定期阅读这些列表但不经常更新它们,那么将两个列表都放在数据库中就可以了。

但是,如果您经常更改这两个列表,您可能会发现自己每次都在两个地方更新数据。

但是,您还应该记住,如果您正在存储 ID 列表,当您想要获取此 ID 的完整对象/文档时,将需要往返服务器。因此,如果对于每个客户(例如)您始终需要有关所有 MediaServers 的所有信息,则您将需要通过网络为每个 MediaServer 进行一次访问该客户的列表中的 ID。

关于java - 在哪里存储相互引用的对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16877564/

相关文章:

java - 如何从 spring-boot 千分尺检索指标

javascript - MongoDB-mongoose,数组过滤器

gwt - 我在 tomcat 上部署了 GWT,但现在 RPC 不起作用

google-app-engine - GWT/股票观察者 : can't connect the server

javascript - 如何检测 GXT Combobox 中的实际值变化

java - MainAcitivity 即使是 SingleTask 也不会进入 onNewIntent 方法并再次调用 onCreate

Java 泛型有声明

java - 如何将具有一对一关系 pojo(ROOM 实现)和 safeArgs 的 List<> 传递到目的地

mongodb - 在聚合中展平 MongoDB 嵌套数组

javascript - javascript forEach() 函数如何在 mongodb shell 中迭代文档?