我是NoSql和DynamoDb的新手,但是来自RDBMS ..
我的表正从 MySql移动到DynamoDb.我有桌子:
客户(栏目:cid [PK],姓名,联系方式)
硬件(列:hid [PK],名称,类型)
租(列:摆脱[PK],cid,隐藏,时间). =>这是客户和硬件项目的关联.
我的表正从 MySql移动到DynamoDb.我有桌子:
客户(栏目:cid [PK],姓名,联系方式)
硬件(列:hid [PK],名称,类型)
租(列:摆脱[PK],cid,隐藏,时间). =>这是客户和硬件项目的关联.
一个客户可以拥有许多硬件项,一个硬件项可以在许多客户之间共享.
要求:单独的客户列表和hadware项目应该能够检索.
租赁细节 – 哪个客户借用哪个Hardeware Item.
我提到了this – 二级索引表.这是关于将所有列保留在一个表中.
我想有2个DynamoDb表:
客户 – 这具有与列和一组硬件项哈希键类似的所有属性. (然后我的问题是,当查询客户表以仅检索客户时,也会加载所有硬件密钥.)
请问表格结构的任何指导?如何保存,加载甚至更新?
请问任何java样本? (找不到任何类似于我的场景的有用资源)
解决方法
请看一下
this answer,因为它涵盖了许多与您相关的基础知识.
DynamoDB不支持外键.每个表都是独立的,没有用于保持两个表同步的特殊工具.
您可能在customers表中有一个名为hardwares的属性.该属性将是客户拥有的硬件ID列表.如果您想查看属于客户的所有硬件项,您将:
>对客户ID执行GetItem.或者根据您对客户的看法使用查询.
>对于客户硬件属性中的每个硬件ID,请在硬件表上执行GetItem.
使用DynamoDB,您通常最终会在客户端应用程序中相对于RDBMS解决方案执行更多操作.它的优点是快速而简单.但是你会发现你可能会将大量工作从数据库服务器转移到客户端服务器上.