java - 如何将现有的关系数据库模型转换为适用于非 sql 数据库(如 Mongo DB 或 Amazon Dynamo DB)的模型

标签 java sql mongodb amazon-dynamodb

我想修改现有的 Java 购物车应用程序,使其与 Amazon Dynamo DB 或 Mongo DB 等 nosql 数据库一起使用...但是传统的 MySQL 数据库是关系数据库 - 它具有复合键/主/外键-- 相反,在 Amazon Dynamo DB 中,要么有一个主键,要么有一个由 2 个字段组成的复合主键...

我有关系数据库的详细数据模型...现在我该如何转换它,以便我在 Amazon Dynamo DB 中拥有一个能够使应用程序与 Dynamo DB 一起工作的数据库(即没有 Sql 数据库)?执行此操作时是否必须牢记任何最佳实践/预防措施?这是否也涉及大量重写应用程序代码的工作?或者我可以在不修改应用程序逻辑的情况下自行处理数据库级别的所有更改吗? 另外,是否有任何工具可以完成大部分/大部分这项工作?

最佳答案

对此没有自动化的方法。像 MongoDB 这样的 NoSQL 数据库不以与 MySQL 相同的方式映射数据结构。有不同的性能特征和不同的数据存储方式。在某些情况下,您会将两个 SQL 表合并到一个集合中,您只需将连接的数据包含在同一个文档中。

如何以及何时执行此操作完全取决于您对数据进行逻辑分组的方式,但同样取决于您对数据施加的工作负载类型。例如,对于大量读取和少量写入,您可能会以不同于大量写入和少量读取的情况存储数据。

除了必须重做从应用程序到数据库的接口(interface)之外,您还必须重新构建数据模型。这将与设计您的 SQL 结构一样多,并且它最有效而不是考虑您将如何在 SQL 中完成它。 NoSQL 与 SQL 是两种完全不同的野兽,需要区别对待!

关于java - 如何将现有的关系数据库模型转换为适用于非 sql 数据库(如 Mongo DB 或 Amazon Dynamo DB)的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390649/

相关文章:

没有 IDE 的 Java 应用程序打包

c# - Linq 到自定义 sql

sql - 在sqlite3中使用row_number时出现语法错误

php - 什么是 "Array to string error"?

javascript - 不知道如何消除 MongoDB 中的重复键错误

MongoDB:结合文本搜索和地理空间查询

java - 转到方法,从文件中提取信息,然后在分割后返回它。我收到错误

java - 如何在程序中从命令行使用数学运算符?

java - 如何将 JComboBox 添加到 JTable 单元格?

python - Tornado "error: [Errno 24] Too many open files"错误