Reduxにおけるデータベースレコードの作成
前回のレッスンでは、データベースにデータを投入するための準備を整えました。さあ、始めましょう。
商品アプリケーションを開き、その中のファイル server.js を開きましょう。まず、必要なデータオブジェクトの種類と数を決めます。出品者は 4 人で、それぞれが 3 つの商品を持っているとしましょう。インポート文の直後に、このための2つの定数を定義します:
const NUM_SELLERS = 4
const PRODS_PER_SELLER = 3
次に、ファイルの末尾、workerのエクスポートの前に、create メソッドを使って 4 人の出品者のデータベースレコードを作成するための for ループを作成します:
for (let i = 0; i < NUM_SELLERS; i++) {
const newSeller = db.seller.create(createSellerData(i))
}
各出品者には 3 つの商品があるため、出品者用のループ内に、商品レコードを作成するためのもう1つのネストされた for ループを作成します:
for (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)
}
}
優秀です!これでデータベースに関する作業は完了です。
あと1つだけやるべきことが残っています。商品オブジェクトの seller フィールドに出品者の id を渡す必要があります。for ループの後に、この id を追加するための関数 serializeProduct をもう1つ書きましょう:
const serializeProduct = (product) => ({
...product,
seller: product.seller.id,
})
学生アプリケーションを開いてください。講師が3人いて、それぞれに 3 人の学生がいるとします。このレッスンの内容を参考にして、for ループを使用して、データベースに 3 件の講師レコードを作成してください。
次に、前の課題のループ内に2つ目の for ループを作成し、それを使って 3 人の学生を作成してください。
ネストされた for ループの後に、レッスンで示したように、teacher フィールドに講師の id を挿入する関数 serializeStudent を書いてください。