Я работаю над клиентским программным обеспечением 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, но, учитывая ограничения проекта и то, что мне нравится изучать новые вещи, я буду придерживаться этого.