Firebase Java Admin SDK для начинающих с SQL - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю над клиентским программным обеспечением POS. Я собирался использовать django с MySQL, но клиент не может заплатить за хост, поэтому я решил написать его на Java с Firebase. У меня возникли некоторые проблемы с точки зрения Firebase из MySQL.

Согласно документации Firebase, чтобы сделать отношения, как в SQL, это должно выглядеть так:

inventory : {
    CD001 : {
        genre : {
            "CLASSICAL" : TRUE
    }
}
genre : {
    CLASSICAL : {
        Name : "CLASSICAL"
        inventory : {
            CD001 : TRUE
        }
    }
}

В то время как в SQL я бы просто поместил жанр primary key как foreign key в инвентарь. Есть ли лучший способ сделать это в Firebase? Кажется, для каждого продукта, имеющего жанр CLASSICAL, мне пришлось бы сделать два updateChildAsync(). Кроме того, любые изменения (например, удаление жанра из инвентаря) я также должен был бы пройти через два DatabaseReference.

Если бы я использовал push, чтобы получить сгенерированный primary key, было бы еще хуже, потому что мне пришлось бы проходить через каждого ребенка, чтобы получить genre имя.

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

1 Ответ

0 голосов
/ 06 ноября 2018

В NoSQL вы часто будете иметь одинаковые значения в нескольких местах, чтобы разрешить конкретные варианты использования вашего приложения. Это нормально, но может потребоваться некоторое привыкание, если вы работаете в фоновом режиме в реляционных базах данных.

Чтобы разобраться с моделью FireSQL от NoSQL, я рекомендую прочитать Моделирование данных NoSQL , посмотреть Firebase для разработчиков SQL (для базы данных Firebase Realtime) и Знакомство с Clouf Firestore .

Хороший пример того, как смоделировать отношения «многие ко многим», см. Отношение «многие ко многим» в Firebase . Ваш пример больше похож на проблему категоризации, и в этом случае я также рекомендую прочитать запрос Firebase, если child of child содержит значение .

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