0

我正在考虑将我的 Web 应用程序从 SQL 数据库迁移到键值存储,这样我就可以水平扩展我的应用程序。

我正在计划如何迁移我的模式 - 我确信必须有一个模式来做到这一点。

我将举一个米老鼠的逻辑例子来展示我的想法。这是一个关系数据库中的简单库系统,带有Books、Persons 和BorrowEvents。您可以使用 s 连接从Books 到PersonsBorrowEvent以查看谁借了哪个Book

Book
 - BookID
 - BookTitle

Person
 - PersonID
 - PersonName

BorrowEvent
 - BorrowEventID
 - BookID
 - PersonID

现在让我们尝试以下重构:

[Key][Value]
 - ID/BookName
 - ID/PersonName
 - ID/[String]"BorrowEvent-"+[ID of BookName]+"-"+[ID of PersonName] 

这通过查询 BorrowEvent 来工作,使用正则表达式拆分值的字符串以获取 ID。

现在这有几个限制。如果我想在我的 中添加一个,AuthorBook必须添加一个额外的跃点来检索我的图书信息。如果我想要Person一个名字和姓氏,也是如此。

我想这种从关系存储到键值存储的转换必须有一种模式。(或多种模式)。我只是不知道叫什么名字。

我的问题是:我应该使用什么模式将关系 SQL 数据库重构为键值存储?

假设

  • 假设这是一个逻辑重构,而不是物理重构。
4

1 回答 1

0

这篇文章列出了许多技术,包括:

  1. 降维
  2. 索引表
  3. 复合键索引
  4. 使用复合键进行聚合
  5. 反向搜索 - 直接聚合
  6. 树聚合
  7. 邻接表
  8. 物化路径
  9. 嵌套集
  10. 嵌套文档展平

    一世。编号的字段名称

    ii. 邻近查询

  11. 批处理图处理

于 2015-11-14T23:13:02.110 回答