Как объединить таблицы в ObjectBox flutter
В моем проекте flutter я выполняю автономный модуль с использованием базы данных objectBox. В этом модуле у меня есть три таблицы: таблица ItemMaster, таблица customerMaster и таблица customerWiseStock . У меня есть данные таблиц itemMaster и customerMaster, и я хочу получить запас, это зависит от itemId (ItemMaster) и salestypeId (CustomerMaster) .
Как кому-нибудь помочь?
здесь я прикрепил изображение для справки.
2 ответа
Вот как вы обычно подходите к этому с помощью ObjectBox:
- Определите отношения между вашими объектами (вам не нужно моделировать свойства ID)
- Определите свой запрос для основного типа результата и используйте ссылки, чтобы «присоединиться» к другим типам в запросе.
- Из объектов результата вы просматриваете отношения от объекта «основного типа», чтобы получить другие типы и, таким образом, к любому свойству.
Примечание. ObjectBox работает очень быстро, когда дело доходит до создания объектов. Так что обход связанных объектов обычно не проблема.
С помощью ObjectBox нельзя смешивать «столбцы» с отдельными «таблицами». Он статически типизирован (и имеет статическую схему), что означает, что объекты Dart сопоставляются непосредственно с данными, хранящимися в базе данных. То, что вы описываете, - это то, что вы ожидаете от базы данных SQL с динамическими результатами (тип Dart может быть чем-то вроде
List<Map<String, dynamic>>
).
Если вы хотите использовать базу данных объектов (не ограничиваясь ObjectBox), я предлагаю вам подумать о денормализации ваших данных там, где это имеет смысл.