【问题标题】:Database Schema for a Gym Exercise Log App健身房锻炼日志应用程序的数据库模式
【发布时间】:2019-01-16 16:03:55
【问题描述】:

我正在制作一个 android 应用程序(我的第一个)来记录健身房锻炼,但我不确定如何最好地构建用于存储这些数据的数据库。

我希望能够存储:

  • 练习及其属性列表

  • 锻炼列表及其属性(包含锻炼)

  • 记录的锻炼列表(锻炼和锻炼日期)

  • 每次记录锻炼的所有组数据(锻炼、组数、每组重量、每组重复次数)

我已经为我认为可以如何实施制定了以下架构:

我的主要问题是:

  • 将所有单独设置的日志数据存储在单个表(日志条目)中是否最佳?

  • 锻炼类型和设备表应该是单独的还是只是锻炼表中的列?锻炼类型也是如此

  • 就性能/可用性而言,这会是一个好方法吗?

谢谢!

【问题讨论】:

  • 为什么要为日志和日志条目分开表?
  • 我希望记录某些锻炼完成的日期,即能够滚动日历视图并查看我在 Y 天进行了锻炼 X。最好只有日志条目表中的锻炼 ID 并在该表中查询锻炼完成的日期?
  • 那我猜架构不错。

标签: android database sqlite android-room


【解决方案1】:

将所有单独的日志数据存储在一个单一的集合中是否最佳? 表(日志条目)?

很可能是的,例外情况是行数增长会对响应时间产生不利影响。

运动类型和设备表是分开的还是只是 练习表中的列?锻炼类型也是如此

它们应该分开,以减少不必要的重复和问题,例如如果您要更改类型或设备,那么您必须将该更改应用于练习表中的所有行,并使用单独的表进行更改。

就性能/可用性而言,这会是一个好方法吗?

除了日志表(因为它包括想要日期)之外,它似乎是一种很好且有效的方法。不需要日志表,因为日志条目表有一个日期时间列(因此,作为对评论的回应,是的,最好使用日志条目中的日期/时间并取消日志表)。

【讨论】:

  • 我想一个普通用户每周会在 Log Entries 表中创建大约 100 个条目 - 这可能会影响几年后的性能吗?如果是这样,解决方案是在每次达到一定大小时创建一个新的日志条目表吗?
  • @SQLol 即使每天 100 甚至一个小时,多年也不应该成为问题。 100000 行不会被认为很大,现在应该很容易管理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 2018-10-25
  • 1970-01-01
  • 2018-03-27
  • 2016-04-10
  • 1970-01-01
  • 2019-11-23
相关资源
最近更新 更多