【问题标题】:What is the best storage for data without relations [closed]没有关系的数据的最佳存储是什么[关闭]
【发布时间】:2020-11-27 06:59:36
【问题描述】:

我正在开发一个基于 Spring Boot 的简单 Web 应用程序,它只需要一张表(里面有四列)数据,没有任何关系。所以数据模型很轻,但还是要存放在某个地方,并且在应用程序重置后不能消失。

表(或一些数据集合)包括对象,其中每个对象都有三个单字字符串作为分隔属性和一个布尔属性。两个字符串是不可变的(姓名和姓氏)。在应用程序生命周期中,可能只有布尔字段会在对象中更改。此更改将被安排并每周执行一次。

我不需要事务,而且应用程序也不是多线程的。它是纯 Java 应用程序。查询将仅从计划任务中执行。数据收集的规模将保持在同一水平。它也将是非常内部的应用程序,因此我们不必留意大型基础设施中出现的一些问题。

在这种情况下我应该使用哪种类型的存储?像 Mongo 这样的 NoSQL 数据库?或者也许将这些数据保存在存储在服务器端的某个文件中并对其进行读/写?

【问题讨论】:

  • 这个问题缺少很多重要的细节。就目前而言,有很多可能的方法可以做到这一点......我们不能将其缩小到单个或少数“最佳”选项。
  • 好的,我将描述更多有问题的细节。
  • 诸如:您需要交易吗?酸?数据是否在应用程序的不同实例之间共享?这是一个仅限 Java 的应用程序吗?应用程序是多线程的吗? (例如网络服务器。)你如何查询它? (迭代记录?按键查找记录?其他方式?)多少数据?架构会发展/增长吗?还有一些我现在想不出来的。
  • 所以让我来回答你的问题:我不需要事务,而且应用程序也不是多线程的。它是纯 Java 应用程序。查询将仅从计划任务中执行。数据收集的规模将保持在同一水平。它也将是非常复杂的内部应用程序,因此我们不必留意大型基础设施中出现的一些问题。
  • 把细节放在你的问题里!

标签: java spring database web storage


【解决方案1】:

你打算通过它搜索吗?

如果否,则解决方案是平面文件。

如果是,您将需要对其进行索引。所以最好使用数据库。 任何数据库都可以!

mongo 的优点是可以随时更改架构,因此在您的情况下可能是一个不错的选择。 只需记住为集合编制索引!

【讨论】:

  • 我确信我不会在这个存储中保存很多记录。这个应用程序要处理的情况需要存储最多 20 条记录,而且没有更多的确定。根据您的回答,我可能会选择文件存储,因为通过这些数据进行搜索不会有问题。
  • 是的 20 个项目 - 您将文本加载到内存中,将其保存在内存中以进行保存/加载,并不时将其保存到磁盘(定期或 onChange - 以任何有意义的方式)
  • 您对哪种文件类型最适合存储数据有任何建议或提示吗?我可以告诉你,每个对象都有四个字段——其中三个是字符串,一个是布尔值。我想到了 txt 文件,其中每个对象的属性都将被空格字符分割。但也许更好的选择是 json?你怎么看?
  • 嘿!从一列..现在我们有4? :)
  • 取决于字符串字段的值...如果其中任何一个可以具有分隔符(空格或 ,),它将不起作用 - 使用 json 您总是可以保存。
猜你喜欢
  • 2021-05-06
  • 2012-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2021-12-05
  • 2020-03-08
相关资源
最近更新 更多