Предупреждение: Ссылка на столбец TAGID ссылки на внешний ключ, но не является частью индекса
. Это может запускать полные сканирования таблицы всякий раз, когда родительская таблица
модифицировано, поэтому вам рекомендуется создать индекс, который охватывает этот колонок
Примечания к тегам-это многие ко многим отношениям, отсюда и таблица JointeSteStags для обработки отображения. Таблицы просты: < /p>
- и tag.id являются основными ключами
Код: Выделить всё
Note.id - ссылки Note.id
Код: Выделить всё
JoinNotesTags.noteId - ссылки Tag.id
Код: Выделить всё
JoinNotesTags.tagId
Код: Выделить всё
"CREATE TABLE IF NOT EXISTS `JoinNotesTags` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`noteId` INTEGER,
`tagId` INTEGER,
FOREIGN KEY(`noteId`) REFERENCES `Note`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE ,
FOREIGN KEY(`tagId`) REFERENCES `Tag`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION
)"
< /code>
А вот соответствующая @Entity < /code> аннотация для этого класса: < /p>
@Entity(
indices = arrayOf(Index(value = *arrayOf("noteId", "tagId"), unique = true)),
foreignKeys = arrayOf(
ForeignKey(
entity = Note::class,
parentColumns = arrayOf("id"),
childColumns = arrayOf("noteId"),
onDelete = ForeignKey.CASCADE),
ForeignKey(
entity = Tag::class,
parentColumns = arrayOf("id"),
childColumns = arrayOf("tagId"))
)
)
"CREATE UNIQUE INDEX `index_JoinNotesTags_noteId_tagId`
ON `JoinNotesTags` (`noteId`, `tagId`)"
< /code>
Итак, мой вопрос: это предупреждение просто ошибкой в библиотеке комнаты (все еще альфа-выпуска)-т.е. анализ времени компиляции не хватает того факта, что тагид < /code> является частью этого составного индекса? Или у меня действительно есть проблема с индексацией, которую мне нужно решить, чтобы избежать полного сканирования таблицы?
Подробнее здесь: https://stackoverflow.com/questions/444 ... -of-an-ind
Мобильная версия