Структура пожарного депо Flutter для условия запроса - PullRequest
0 голосов
/ 04 мая 2020

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

enter image description here

Когда я пытаюсь написать запрос Firebase с помощью Flutter, я могу сделать this:

Firestore.instance
    .collection("ferie_permessi")
    .document("worker1@test.com")
    .snapshot();

Это работает, но есть две основные ошибки:

  1. Если я пытаюсь создать другую коллекцию под названием "Информация о Woker", я не могу использовать worker1@test.com в качестве идентификатора документа как это уже существует;
  2. Я должен отсортировать данные клиента, потому что Firestore не дает мне возможности (с этой настройкой, которую я сделал).

Я вполне уверен, что эта структура не очень хорошая. У каждого работника должно быть 2 списка: vacations и other. Что не так?

Я предполагаю, что мне нужно переместить worker1@test.com вместе с vacations и other, чтобы я мог сделать запрос такого типа:

Firestore.instance
    .collection("ferie_permessi")
    .where("user", "==", "worker1@test.com)
    .snapshot();

Но теперь идентификатор? Автомат c один хорошо?

1 Ответ

1 голос
/ 04 мая 2020

У меня была возможность недавно изучить создание приложения с использованием firebase-firestore. Здесь помогут несколько вещей:

  1. Да, автоматически сгенерированный id хорош, поскольку он уникален, например, вы можете иметь коллекции vacation_requests, users, которые затем сможете использовать что user_id как документ в vaccation_requests -> user_id -> vacations, вместо использования электронной почты в качестве ключа документа.

или

Вы можете сделать ему нравятся следующие коллекции: users, vacation_requests и requests.

  1. хранят данные о пользователях в users.
  2. сохраняют запросы в requests с from и to даты.
  3. хранить ссылку на пользователя и запрос в vaccation_requests.

Надеюсь, это поможет!

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