我正在尝试将现有的关系数据库映射到键值存储。几个示例表如下所示。
对于一个实例,上面的“员工详细信息”表可以在Redis(或任何类似的键值存储)中表示如下
set emp_details.first_name.01 "John"
set emp_details.last_name.01 "Newman"
set emp_details.address.01 "New York"
set emp_details.first_name.02 "Michael"
set emp_details.last_name.02 "Clarke"
set emp_details.address.02 "Melbourne"
set emp_details.first_name.03 "Steve"
set emp_details.last_name.03 "Smith"
set emp_details.address.03 "Los Angeles"
“付款”表也可以如上表示。但是,此方法不会在“员工详细信息”表和“付款”表之间建立一对多关系。因此,有没有更好的方法从现有的RDBMS实现键值存储。您可以参考这两个表并建议一个更好的密钥架构来存储值。提前谢谢。
答案 0 :(得分:1)
Nosql数据库基本上是聚合商店。关系及其相关值存储在“'值”中。关键 - val设计的一部分。
避免联接有助于提高性能。
nosql建模的优秀链接 - https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/
答案 1 :(得分:0)
Relational tables represent business/application relationships/associations. FK(外键)获得称为的关系但不是。 (它们只是关于每个业务/应用程序情况和相应数据库状态的真相。)FK约束声明只是告诉RDBMS强制将子行作为超级键(唯一键)出现在别处。 (尽管DBMS可以使用它进行优化。)关系查询不需要约束。
FK是关系型的。在非关系型DBMS中,如果您想使某些查询更简单或更快,例如,当它们是涉及某些FK的某些关系连接的等价物时,以使更新复杂化为代价。其他查询,然后你做冗余地记录数据,或者以嵌套/分层方式,或使用指针/间接。
关系与非关系模式的差异&查询是数据模型中difference的基础。关系模型的好处。使用关系表作为数据结构允许直接的应用程序中立查询,具有某些实现计算复杂性&优化机会。对特定NoSQL DBMS的任何介绍都将解释如何建模&查询。 (通常假设初始关系设计。)