[英]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.