繁体   English   中英

在像 Hive for Flutter 这样的 No-SQL 数据库中处理数据库更改的最佳方法是什么?

What is the best way to handle database alteration in a No-SQL DB like Hive for Flutter?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

假设您使用Hive启动具有以下数据库架构的应用程序:

box.put('schema', {'foo': true, 'bar' : 2, 'baz': 'baz'});

在您启动应用程序的新版本并假设架构更改名称后一段时间,如下所示:

box.put('schema', {'f00': true, 'b@r' : 2, 'baz': 'baz'});

处理客户现有数据库的最佳方法是什么?

1 个回复

无论 Flutter 上下文如何,这似乎都是一般的 No-SQL 数据库用法。

使用 No-SQL 数据库意味着他们没有迁移协议,因为它的重点是以极快的速度和效率进行读写。

大多数情况下,在处理 No-SQL 数据库时,数据的整个结构都存在于代码中,而不是数据库中。 这与 SQL 数据库完全相反。

Hive有一种方法可以处理类https://docs.hivedb.dev/#/custom-objects/generate_adapter?id=updating-a-class 中的这种更改,但记住,文档说如果您更改该字段数字你会失去你的结构。

不管 Flutter 是什么,你都需要记住,在使用 No-SQL 数据库时,无论编码语言如何,为了从这里开始:

box.put('schema', {'foo': true, 'bar' : 2, 'baz': 'baz'});

对此:

box.put('schema', {'f00': true, 'b@r' : 2, 'baz': 'baz'});

并且仍然支持两者。 您将需要编写无限期同时支持这两个条目的代码,而且每次阅读旧格式时,您都必须决定是保持原样并支持两者还是将旧格式更改为新格式。

另请注意,从旧格式到新格式的更改应该在使用时读取它们。

因为要一次更改所有条目,您将不得不读取和重写数据库中的所有条目,这将太低效。

由于在 No-SQL 中,每个单独的条目(文件、文档、.json)没有严格的格式,这意味着即使它们属于同一个存储/表,它们也可以以任何你认为合适的方式存储任何内容。 在这种类型的数据库中,不存在像在 SQL 中那样更改表中的列名之类的事情。

1 No-sql数据库中的分页

没有像Redis这样的SQL数据库支持分页功能。 用例:我在Redis实例中拥有全部客户数据。但是,对于我的API,请求将伴随分页(例如:页面大小为10),现在我需要将所有数据(让说-10000)加载到我的API中Redis的Application(Spring boot),然后进行分页并返回 ...

2 这是设计no-sql数据库的好方法吗?

我对关系数据库有足够的经验,但是想尝试一种不使用SQL的方法(键值)。 并为此制定了一项任务。 这是与用户,广告系列和统计信息进行分组相关的另一个链接。 而且它必须在高负载下正常工作=) 用例: 我如何使用关系数据库解决此任务。 四个表: 用户(ID,名称) ...

3 SQL Server与No-SQL数据库

我已经继承了旧版内容交付系统,因此需要重新设计和重新构建它。 内容由内容提供商(例如Sony Music)提供,并由旧版.NET应用程序提取到SQL Server数据库中。 每个内容都有一些共同的属性(例如,标题和艺术家名称)以及一些特定于内容类型的属性(例如,MP3文件的比特率和视频文 ...

4 No-SQL数据库获取大价值

我正在寻找一个键值存储,它可以处理一些千兆字节的值。 我看过Riak , Redis , CouchDb和MongoDB 。 我想在此数据库中存储用户的工作空间(等于文件系统中的目录,并递归包含子目录和文件)。 当然,我可以使用文件系统,但随后就没有像Redis这样的功能,例如在RAM ...

5 如何处理No-SQL数据库中缺少形状规范化的问题

我正在使用Firebase数据库。 我被分配了任务:将所有从数据库返回的时间戳对象转换为Date对象。 我对像firebase这样的无SQL数据库并不熟悉。 但是我知道没有对所有记录进行标准化的数据形状。 这给我带来了一个问题,我不必担心在SQL数据库中。 而在SQL数据库中,如果 ...

6 用于从 No-SQL 数据库移动的数据的 SQL 查询

我有一个具有以下属性的 No-SQL DB。 我计划将其移至 SQL,因为它主要用于 OLAP。 我可以在这里执行以下查询吗? 从 State Initiated转移到UnderReview 所需的时间。问题是客户可以有多个具有相同状态的条目(版本会有所不同)。对于每个客户,我想选择最新版本的时间 ...

7 Jhipster可以同时使用SQL和NO-SQL数据库吗?

我正在评估jhipster,它看起来很棒。 我既需要MySQL和MongoDB数据库。 JHipster有什么方法可以为MySQL或Mongo生成实体? 我可以肯定手动使用Spring-Data-MongoDB,但是我想知道,即使我选择“ MySQL”作为我的主数据库,我是否可以强制为 ...

8 我应该使用memcached mysql还是NO-SQL数据库?

我正在开发一个TCP服务器应用程序,该应用程序需要在Java上每秒分发约1000帧。 每个传入的帧都会生成一个更新(保存状态)并插入(用于日志记录)到mysql。 它说每秒1000次更新和1000次插入! 我在此更新和插入中遇到瓶颈。 在这一点上,我不知道mysql对我的场景是否是一个不 ...

9 在 SQL 数据库中记录数据更改和用户活动的最佳方法是什么?

我正在启动一个新应用程序,想知道最好的日志记录方法是什么。 数据库中的某些表需要记录每次更改以及进行更改的用户。 其他表可能只需要记录上次修改时间。 在以前的应用程序中,我使用了不同的方法来做到这一点,但想听听其他人是怎么做的。 我尝试了以下方法: 向表中添加一个“修改过的”日期时间字段以 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM