Как структурировать повторяющиеся задачи для пользователя в Firestore? - PullRequest
0 голосов
/ 19 сентября 2019

Я создаю приложение todo, чтобы научиться создавать мобильные приложения и работать с моделями данных.Приложение ориентировано на свидания, каждый день является «страницей».Я сохраняю задачи под ежедневным списком в Firestore, который работает нормально, хотя я не уверен, что это хорошая практика.

Моя проблема теперь с повторяющимися задачами.Я хотел бы пометить задачу, чтобы повторять ее ежедневно, еженедельно или ежемесячно, но дублирование одной и той же задачи на каждый день «день / неделя / месяц» звучит безумно.

Я думал о создании корзины со всемиповторяющиеся задачи и, возможно, ссылки на эту задачу в те дни, когда она актуальна, со статусом отмеченного или не присутствующего в дневном документе.

Моя текущая структура:

User
└───Inbox   
└───Days
    └───Year(2019)
        └───Month(Nov)
            └───Day(19)
                └───Todos
                │   └───todoId
                │       └───complete?(bol)
                │       └───created_at
                │       └───title
                └───Notes

  1. Какая была бы хорошая структура / дизайн, чтобы иметь повторяющиеся задачи, учитывая эту модель и структуру Firestore?
  2. Является ли эта модель хорошей?Если нет, то какой подход лучше?

1 Ответ

2 голосов
/ 19 сентября 2019

Браво только на обучении.

Я не уверен, какие повторяющиеся задачи вы имеете в виду, но основываясь на том, что я могу почерпнуть из остальной части вашего поста, я не думаю, что ваша модельчто-то, на что вы будете рассчитывать, когда захотите добавить больше функций позже.

Я бы вместо этого использовал структуру, которая намного проще и позволяет легко запрашивать.Примерно так:

Todos
--> Todo1
-----> Date: Timestamp
-----> Complete: true
-----> UID: 12345
---> Todo2
-----> Date: Timestamp
-----> Complete: false
-----> UID: 67890

Запрос к простой структуре, подобной этой, будет таким простым:

"Все задачи по 67890"

Или

«Все задачи на 67890 на сегодня»

или

«Все неполные задачи для пользователя 12345, где дата> вчера»

Для дат можно просто сохранить время, такое, чтоВы можете искать любые результаты в диапазоне, а чтобы сделать день, вы просто делаете полночь до полуночи.Например, все сообщения с 12:00 пн.до 12:00 вт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...