我是数据库和SQL的新手,我想为健身应用程序设计一个数据库,以便跟踪健身房的锻炼情况。
在我的应用程序中,我设计了一个自定义锻炼对象,其中包含名称(例如“Chest day”),ID(某个数字)和日期(字符串)。每个训练对象包含一系列练习,另一个自定义对象,具有称为“设置”的属性。该集合也是一个自定义对象,只有两个数字属性:代表数量和权重(例如,50磅的10个代表)
我想到的是有一个用于锻炼的桌子,另一个用于锻炼,另一个用于锻炼。问题是我不知道如何连接表(即将多个练习链接到一个独特的练习并将多个练习链接到一个独特的练习),我不确定这是否是正确的方法。
此外,我计划使用提供noSQL数据库的amazon Web服务移动中心为此应用设置后端。
答案 0 :(得分:0)
在NoSQL中,您应该将所有属性保存在单个表中。你不应该像RDBMS那样规范化数据。另外,请尝试离开加入。 NoSQL的主要优点是将所有内容保持为一个项目,这样您就不需要Join
来获得结果。
这种方法的优点是: -
1)快速响应,因为所有数据都作为表格中的一个项目出现
2)Schema less database,即你可以随时添加任何属性(即不需要改变表并添加新列)
针对上述用例的DynamoDB设计: -
分区和排序键的组合应该是唯一的
name -String(Partition Key)
id -Number(排序键)
日期 - 字符串
练习:[数值数组] - 列出数据类型
custom_set:{rep:1,weight:2} - 地图数据类型
重要提示: -
在为DynamoDB设计数据模型时,重要的是所有数据检索用例(即查询访问模式)都应该可用于设计适当的模型。