Необходимо спроектировать мобильное приложение для изучения английского языка на Android.
Я планирую использовать в приложении задания как минимум подобные тому, какие есть в приложении Duolingo:
1. перевод слов и предложений с русского на английский или наоборот
1.1. с закрытыми полными вариантами ответов
1.2. с открытым ответом (вводится с клавиатуры)
1.3. с закрытым составным ответом, составляемым из набора перетаскиваемых элементов. Только определённый набор, собранный в определённом порядке, является правильным ответом. Элементов может быть больше, чем необходимо, т.е. есть лишние ответы.
2. перевод аудиозаписи с английского на русский
2.1., 2.2., 2.3 аналогичны соответственно подпунктам пункта "1"
3. произношение
3.1. Произношение написанных английских слов или предложений вслух
3.2. Произношение перевода написанных английских слов или предложений на русский вслух
4. возможно будут задания с подбиранием правильных ответов на вопросы и вопросов на ответ, но я пока что не знаю, как их можно спроектировать.
А ещё могут пригодится картинки, и очень вероятно, что на 1 задание будет не одна картинка, а несколько, и картинки будут привязаны к ответам т.к. ассоциации позволяют человеку легче запомнить слова, чем простой текст.
Каким образом всё это можно хранить в реляционной БД?
Я ещё не программировал приложения на Android, поэтому никакая конкретная СУБД не выбрана.
Планируется, что приложение будет работать и без подключения к Интернету, то есть задания можно будет скачивать и хранить в локальном дубляже БД, находящимся уже на устройстве пользователя. Однако получение самих заданий требует подключения к Интернету.
Я продумал, как можно хранить слова и их словари на определённые темы в той же БД, и сделал набросок для этого в Excel. Планируется, что словари также можно скачивать на устройство, а также удалять.
Fk = foreign key, цветами помечается, на какой столбец ссылается ключ
Пример заданий в Duolingo (в нём отсутствуют изображения):