Реструктуризация данных из базы SQL в Realtime Firebase - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь настроить структуру для моего приложения, переходя от структуры SQL к структуре Firebase. На данный момент я использую следующее:

-SQL-
  Product: {id, name, workPrice}
  Material: {id, name, unitCost}
  Product_Material{ pId, mId, amount}

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

-FB-
  Product: {
    boxId: { 
      name: "Wooden box"
      workPrice: "5"
      materials: {
         "woodId": true
      }
    }
  },
  Material: {
    woodId: {
      name: "wood",
      unitCost: "10"
    }
  }

Но поскольку мне нужна сумма, она не подходит. Как это относится к моему делу? Нужно ли делать третий объект таким же, как третья таблица в SQL?

1 Ответ

0 голосов
/ 29 октября 2019

Поскольку Firebase является базой данных без SQL, вы можете связать два объекта по идентификаторам, например, если у продукта есть материалы, вы можете ссылаться на идентификатор материала этого продукта, затем вы запрашиваете продукт и получаете этот идентификатор материалаи с этим идентификатором материала вы переходите к узлу материала и ищете этот материал.

Пример

 Product: { 
    name: "Wooden box"
    workPrice: "5"
    materials: {
       "materialId": true,
       "materialId2": true
    }
  },
  Material: {
     materialId: {
    name: "wood",
    unitCost: "10"
     },
      materialId2: {
      name: "Plastic",
      unitCost:"15"
     }
  }

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

вы можете генерировать случайные идентификаторы материалов с помощью метода .push() в реальном времени. База данных или .add() с Firestore

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