私は非常に単純な支払いWebアプリをプログラミングしています。これは、何かをプログラミングする最初の試みです。データベース構造に問題が発生し、正規化する必要があると言われました。
現時点では、次のような構造になっています。
Customers
---------
id, firstName, lastName, country
Items
---------
id, itemName, itemCost
Purchases
----------
customerID, dayCost, serviceCost, numItem1, numItem2, numItem3
Orders
----------
orderId, customerId, amountPaid, date
次のように表示できるクエリを実行できる必要があります。
- 合計:140
- 日帰り費用:50
- サービス費用:70
- コロナスコスト:20(4)
- アイテム2コスト:0
- アイテム3コスト:0
- 総債務:100
私のアイデアは、たとえば(purchases.numItem1 by item.itemName where id = 1 + Purchases.dayCost + Purchases.serviceCost)-orders.amountPaidを計算することでした。
これは正しくなく、どうあるべきかわかりません。
顧客が注文した各アイテムの量、各アイテムの合計コスト、および未払いの合計コストをクエリで返すことができる必要があります。
このクエリを可能にするための、より適切な正規化されたテーブル構造は何ですか?
Webページのフォームを操作する必要があり、その構造が機能しないため、顧客とアイテムID、数量と金額を含む注文テーブルを単純に作成することはできません。