Поставщик контента Android и отношения "многие ко многим"

У меня есть простое приложение Notes, которое по функциям аналогично образцу Android NotePad. Одно дополнение - каждая заметка может иметь теги. Заметка может иметь несколько тегов , а тег может принадлежать нескольким Note , что делает это число-ко-многим

Я завершил проект БД, используя внешние ключи и таблицу сопоставления. Теперь я хочу, чтобы мое приложение подключалось к платформе поиска Android, что требует использования ContentProvider для предоставления моих данных.

Есть ли какие-либо передовые методы, которым следует следовать в этом сценарии? Я нашел несколько связанных вопросов по SO, но большинство из них касалось отношений «один ко многим» ( этот , например). Из этих вопросов я пришел к выводу, что лучше всего иметь один ContentProvider для каждой БД, а затем использовать концепцию Matcher для разрешения нескольких таблиц в БД. Это по-прежнему оставляет другие вопросы открытыми.

  1. Учитывая ID заметки , я хотел бы вернуть все теги, связанные с этой заметкой. Как мне настроить ContentUri для такого случая? Ни один из "content: // myexample / note / #" и "content: // myexample / tag / #" не будет служить цели.

  2. Ни один из 6 Методы ContentProvider , которые я отменяю, подойдут для такой цели, не так ли? Я, конечно, могу представить новый метод, но это не будет понятно потребителям моего ContentProvider .

Заранее благодарим за ваши предложения.

8
задан Community 23 May 2017 в 12:09
поделиться