【发布时间】:2018-02-10 15:41:25
【问题描述】:
我很难让我的数据适合 Firebase,需要一些指导。我对关系数据库充满信心,发现我只是将这种思维方式复制到 firebase。
我正在创建一个健身应用。我的结构如下:练习、锻炼和计划。
练习很简单,它是一个简单运动的名称、描述和照片,例如深蹲或卧推。
exercise
--e1
--name:"Squats"
--description: "..."
--e2
--name:"Benchpress"
--description: "..."
然后我有一个锻炼列表。锻炼是一组以特殊顺序执行的练习,具有特定的重复次数和组数。一项练习可用于具有不同参数(次数、组数、休息)的多项锻炼
workouts
--w1
--name:"Easy workout"
--description: "Design for beginners"
--exercises:
--we1:
--exercise: e1
--reps: 12
--rest: 60
--order: 1
--we2
--exercise: e2
--reps:6
--rest: 30
--order: 2
--w2
--name: "Hard exercise"
...
所以这里我有 w1,一个只使用练习 1 的锻炼:首先你执行 12 次练习 1,然后休息 60 秒,然后练习 6 次练习 2 并休息 30 秒。
我终于有了一个计划/计划。一个程序由您可以遵循的多项锻炼组成。例如,您的计划可能包含 3 项锻炼,您应该在周一、周三和周五进行。
programs
--p1
--name: "The Stack Overflow Fitness Plan"
--description: "I am a fancy text"
--workouts:
--w1: true
--w2: true
所以如上所述,我只是将关系数据放在 firebase 中。这不是正确的方法。我只是有麻烦我应该如何以平坦的方式管理这些数据。例如重复可以吗?
目前我有一个非常昂贵的阅读(不是最佳实践),因为我查询程序位置,映射它,查询锻炼,映射它,查询练习。很快就变得很麻烦了。
非常感谢任何想法和帮助。
【问题讨论】:
标签: javascript firebase firebase-realtime-database denormalization nosql