Tworzenie wpisów w bazie danych w Redux

Na poprzednich zajęciach przygotowaliśmy wszystko, aby wypełnić naszą bazę danych. Zabierzmy się do tego.

Otwórzmy naszą aplikację z produktami, a w niej plik server.js. Najpierw zdecydujmy, ile i jakich obiektów z danymi potrzebujemy. Sprzedawców mamy 4, niech na każdego z nich przypada po 3 produktów. Wprowadźmy w tym celu dwie stałe zaraz po wierszach z importem:

api/server.jsconst NUM_SELLERS = 4
const PRODS_PER_SELLER = 3

Teraz na końcu pliku przed eksportem workera wykonajmy pętlę for, w której za pomocą create utworzymy wpisy w bazie danych dla naszych 4 sprzedawców:

api/server.jsfor (let i = 0; i < NUM_SELLERS; i++) {
  const newSeller = db.seller.create(createSellerData(i))
}

Na każdego sprzedawcę przypada u nas 3 produktów, dlatego w pętli dla sprzedawców wykonamy jeszcze jedną zagnieżdżoną pętlę for, w której będziemy tworzyć wpisy dla produktów:

api/server.jsfor (let i = 0; i < NUM_SELLERS; i++) {
  const newSeller = db.seller.create(createSellerData(i))

  for (let j = 0; j < PRODS_PER_SELLER; j++) {
    const newProduct = createProductData(newSeller)
    db.product.create(newProduct)
  }
}

Doskonale! Na tym zakończyliśmy pracę z bazą danych.

Pozostało nam tylko zrobić jeszcze jedną rzecz. Potrzebujemy, aby w obiekcie z produktem w polu seller przekazywane było id sprzedawcy. Napiszmy poniżej po pętlach for jeszcze jedną funkcję serializeProduct, w której będziemy dodawać to id:

api/server.jsconst serializeProduct = (product) => ({
  ...product,
  seller: product.seller.id,
})
Задание 1

Otwórz twoją aplikację ze studentami. Niech będzie trzech nauczycieli, a na każdego z nich przypada 3 studentów. Zapoznawszy się z materiałem z tej lekcji, skorzystaj z pętli for i utwórz w bazie danych 3 wpisy z nauczycielami.

Задание 2

Następnie wykonaj drugą pętlę for wewnątrz pętli z poprzedniego zadania, za pomocą której utwórz 3 studentów.

Задание 3

Po zagnieżdżonych pętlach for napisz funkcję serializeStudent, jak pokazano na lekcji, która będzie wprowadzać do pola teacher id nauczyciela.