嗨,你应该这样建模你的数据库:
-
职位_类别
-
标签
-
作业(添加category_id字段,并向category表添加1个外键引用)
-
Job_Tags(添加tag_id、Job_id字段,并添加2个引用类别和作业表的外键)
@Entity(tableName = "Category")
data class CategoryEntity(
@PrimaryKey @ColumnInfo(name = "id") val id: Int,
)
@Entity(tableName = "Tags")
data class TagEntity(
@PrimaryKey @ColumnInfo(name = "id") val id: Int,
)
@Entity(
tableName = "Jobs",
foreignKeys = [ForeignKey(entity = CategoryEntity::class, parentColumns = ["id"], childColumns = ["categoryid"])]
)
data class JobEntity(
@PrimaryKey @ColumnInfo(name = "id") val id: Int,
@ColumnInfo(name = "categoryid", index = true) val categoryid: Int,
// ... other fields
)
@Entity(
tableName = "JobTags",
foreignKeys = [
ForeignKey(entity = TagEntity::class, parentColumns = ["id"], childColumns = ["tagId"]),
ForeignKey(entity = JobEntity::class, parentColumns = ["id"], childColumns = ["jobId"]),
]
)
data class JobTagEntity(
@PrimaryKey @ColumnInfo(name = "id") val id: Int,
@ColumnInfo(name = "tagId", index = true) val tagId: Int,
@ColumnInfo(name = "jobId", index = true) val jobId: Int,
)