Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 我可以为需要3列来唯一标识dynamodb中的行的数据建模吗?_Database_Nosql_Amazon Dynamodb - Fatal编程技术网

Database 我可以为需要3列来唯一标识dynamodb中的行的数据建模吗?

Database 我可以为需要3列来唯一标识dynamodb中的行的数据建模吗?,database,nosql,amazon-dynamodb,Database,Nosql,Amazon Dynamodb,我来自SQL,正在努力建模NoSQL(dynamodb),甚至是一些简单的数据集。要求提供一些指导,以便在dynamodb中对这些数据进行建模 我的数据(如下所示)只能使用前3列进行唯一标识:条形码、日期和类型。请参见第一行和第二行。使用分区键和排序键无法插入第二行 看来次要的钥匙解决不了这个问题 有没有一种方法可以对这些数据进行建模,还是应该坚持使用SQL 条形码(部件密钥) 日期(排序键) 键入(什么键??) 价值 obs xyz123 06/08/2021 类型1 随机的 随机的 xyz1

我来自SQL,正在努力建模NoSQL(dynamodb),甚至是一些简单的数据集。要求提供一些指导,以便在dynamodb中对这些数据进行建模

我的数据(如下所示)只能使用前3列进行唯一标识:
条形码
日期
类型
。请参见第一行和第二行。使用分区键和排序键无法插入第二行

看来次要的钥匙解决不了这个问题

有没有一种方法可以对这些数据进行建模,还是应该坚持使用SQL

条形码(部件密钥) 日期(排序键) 键入(什么键??) 价值 obs xyz123 06/08/2021 类型1 随机的 随机的 xyz123 06/08/2021 类型2 随机的 随机的 xyz123 12/12/2021 类型1 随机的 随机的 wsr456 12/12/2021 类型5 随机的 随机的
正如您所发现的,NoSQL的学习曲线可能很陡峭

数据建模的NoSQL方法要求您首先面对应用程序独特的访问模式。从那里,您可以根据应用程序查询信息的方式来决定如何存储数据

“我如何对这些数据建模?”只是你需要问的问题的一部分。更完整的问题是“鉴于我的应用程序的特定需求,我如何对这些数据建模?”NoSQL数据库以非模型化的方式存储数据,这意味着您需要提前考虑数据访问需求。DynamoDB使将数据放入数据库变得超级容易;抵制这种诱惑。相反,停下来想想你的应用程序需要支持什么类型的查询


在您的示例中,您似乎正在存储带有条形码的项目。你正在建立一个库存系统吗?您需要按日期获取最近的库存吗?您需要按类型提取库存吗?您是否需要获取低于某个阈值的库存?这些问题的答案将决定您的数据模型是什么样子。

正如您所发现的,NoSQL的学习曲线可能很陡峭

数据建模的NoSQL方法要求您首先面对应用程序独特的访问模式。从那里,您可以根据应用程序查询信息的方式来决定如何存储数据

“我如何对这些数据建模?”只是你需要问的问题的一部分。更完整的问题是“鉴于我的应用程序的特定需求,我如何对这些数据建模?”NoSQL数据库以非模型化的方式存储数据,这意味着您需要提前考虑数据访问需求。DynamoDB使将数据放入数据库变得超级容易;抵制这种诱惑。相反,停下来想想你的应用程序需要支持什么类型的查询


在您的示例中,您似乎正在存储带有条形码的项目。你正在建立一个库存系统吗?您需要按日期获取最近的库存吗?您需要按类型提取库存吗?您是否需要获取低于某个阈值的库存?这类问题的答案将决定您的数据模型的外观。

您可以使用
{{{barcode}}-{{date}-{type}}
作为分区键来解决此问题。这是否回答了您的问题?简短回答,是的-我不会按照@jellycsc建议的方式设计它,但是您可以为排序键组合日期和类型。要了解更多关于DDB设计的信息,我可以推荐或感谢您的回答。现在,我将使用
date#type
作为排序键。您可以使用
{{barcode}}-{date}-{type}
作为分区键来解决这个问题。这是否回答了您的问题?简短回答,是的-我不会按照@jellycsc建议的方式设计它,但是您可以为排序键组合日期和类型。要了解更多关于DDB设计的信息,我可以推荐或感谢您的回答。现在,我将使用
date#type
作为排序键。学习nosql确实需要更长的时间。我开始把它捡起来了。我正按照你的建议采取慢一点的方法。你有很好的同伴,这个过程不容易!像很多事情一样,你会通过练习变得更好。查看Alex Debrie的博客帖子和youtube视频,他是DynamoDB最优秀的内容创作者之一。他的内容将使您快速了解DynamoDB。祝你好运学习nosql确实需要更长的时间。我开始把它捡起来了。我正按照你的建议采取慢一点的方法。你有很好的同伴,这个过程不容易!像很多事情一样,你会通过练习变得更好。查看Alex Debrie的博客帖子和youtube视频,他是DynamoDB最优秀的内容创作者之一。他的内容将使您快速了解DynamoDB。祝你好运