繁体   English   中英

如何使用用户电影和收藏夹创建房间数据库?

[英]how to create room database with user movies and favourites?

我打算创建一个房间数据库来模拟rest-api,所以我想做的是在数据库内部存储数据作为rest-api。 我的想法是有一个名为电影的表(id、名称等),然后用户可以将此电影保存为收藏夹,所以,我想有一个用户表(总是一样的,因为它是一个假的)然后我想在用户表中添加一个名为收藏夹的电影列表。

还有其他优化方式吗?

我的想法是:

用户

id name age favouriteList: List

电影

id 名称 流派 持续时间

目标是:

询问电影列表并知道当前用户的最爱,但总是返回相同的列表,只是在演示时我必须能够检查哪个是最喜欢的,哪个不是。

是的。 有一种方法可以用数据预先填充 Room。 您所要做的就是在您的配置中调用 function:

如果将 db 文件放在assets文件夹中:

Room.databaseBuilder(appContext, AppDatabase.class, "Sample.db")  
    .createFromAsset("database/myapp.db")
    .build()  

但是,有一些细节可能会对您有所帮助,因此只需 go 通过本文一次。

您也可以通过官方文档go

编辑:对于您的其他问题:如何组织表格。 你的流程是正确的。 首先有一个用户表:

@Entity(tableName = "user)
data class User(
  @PrimaryKey
  @ColumnInfo(name = "id")
  val id: Int,
  @ColumnInfo(name = "favorite_movies")
  val favoriteMovies: List<Movie>,
  ... other fields here
)

然后在Movie实体上:

@Entity(tableName = "movies",
foreignKeys = [ForeignKey(
        entity = User::class,
        parentColumns = arrayOf("id"),
        childColumns = arrayOf("user_id"),
        onDelete = CASCADE
    )]
)
data class Movie(
  @PrimaryKey
  @ColumnInfo("id")
  val id: Int,

  @ColumnInfo(name = "user_id", index = true)
  val userId: Int,

  .... other fields here
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM