【发布时间】:2019-09-29 03:11:14
【问题描述】:
我正在尝试使用 AWS 识别来传递“出勤”并将记录(日期和时间)插入到 DynamoDB 表中,以记录孩子上学的每一天,问题是我不熟悉 NoSQL 和考虑到这一点,我想知道创建表格的最佳方法是什么。
我使用的一些属性是:
- 注册号(PartionKey)
- 名字
- 姓氏
由于日期/出勤率将成为“动态属性”(孩子是否上学),我不确定是否应该:
为每天/每周或每月创建一个新表,并且只有注册号作为属性,并且有一个 lambda 触发器来放置一个时间戳,当孩子被发现意味着孩子上课时(这个会有很多...很多表,我相信会破坏 dynameDB 的目的)
在同一张表中插入出勤率作为属性和
list类型(可以是一个数组,用于插入每天发现孩子的时间戳)..此选项将使项目/表在 DynamoDB 中的权重超过它应该?导致它变慢??
关于解决此问题的可能方法有什么想法吗?还有另一种成本和内存优化的方法吗?
我没有提到触发器、lambda 函数、AWS 识别,因为它超出了本文的范围
【问题讨论】:
-
你能解释一下enrollmentID代表什么吗?是学生和班级的关系吗?为了对表设计提出建议,您还需要解释您预期的查询模式。
-
enrollmentID 只是我将使用的主键,我打算查询是否有一个孩子在任何一天上学
-
是的,但是注册代表什么?如果我需要唯一标识一个学生,一个enrollmentID 就足够了吗?
-
是的,enrollmentID 将是每个学生的唯一编号......
-
我知道个人属性将保持不变,但出勤列表会随着时间的推移而增加,所以我应该将所有内容嵌入到一个表中还是应该为每个学生引用一个新表? (估计有 500 名学生)
标签: database database-design nosql amazon-dynamodb key-value