小编SQL*_*Lol的帖子

健身房锻炼日志应用程序的数据库架构

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

我希望能够存储:

  • 练习列表及其属性

  • 锻炼项目及其属性列表(包含练习)

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

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

我已经制定了以下架构来说明如何实现这一点:

在此输入图像描述

我的主要问题是:

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

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

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

谢谢!

database sqlite android android-room

5
推荐指数
1
解决办法
1万
查看次数

如何打开在Kotlin中完全展开的BottomSheetDialogFragment?

我可以使用打开我的BottomSheetDialogFragment

val bottomSheet = BottomSheetFragment()
bottomSheet.show(fragmentManager!!, "BottomSheet")
Run Code Online (Sandbox Code Playgroud)

但它只打开以显示其内容的一半-我希望它在打开时可以扩展到屏幕的整个高度,而无需向上拖动。

我环顾四周,似乎一种方法是将BottomSheetBehavior状态设置为STATE_EXPANDED,但是我无法在Kotlin中找到解决方法。

任何帮助,将不胜感激!

android kotlin bottom-sheet

3
推荐指数
1
解决办法
1391
查看次数

房间日历类型转换器 (Kotlin)

我正在尝试使用以下方法在我的房间数据库中保留时间戳TypeConverter

class Converters {

    @TypeConverter
    fun fromTimestamp(value: Long?): Calendar? {

        if(value == null) return null

        val cal = GregorianCalendar()
        cal.timeInMillis = value
        return cal
    }

    @TypeConverter
    fun toTimestamp(timestamp: Calendar?): Long? {

        if(timestamp == null) return null

        return timestamp.timeInMillis
    }
}
Run Code Online (Sandbox Code Playgroud)

我的两个实体包括以下列:

@ColumnInfo(name = "timestamp")
val timestamp: Calendar?,
Run Code Online (Sandbox Code Playgroud)

但是在尝试构建项目时出现编译错误 - 在使用Date TypeConverter开发人员参考指南中的示例时我没有遇到任何问题。

我无法看到实际的错误是什么,因为如果与 Room 相关的代码有问题,我只会收到一堆数据绑定“找不到符号”错误。

sqlite typeconverter kotlin android-room android-architecture-components

3
推荐指数
1
解决办法
4561
查看次数