単純なデータベースの概念をもっと理解しようとしていますが、より高度な正規化に問題があります。たとえば、ボイス コッド正規形 (BCNF) と第 4 正規形 (4NF) では、次のようになりますか?
INVOICE(CustomerNumber、FirstName、LastName、Phone、InvoiceNumber、DateIn、DateOut、ItemType、Quantity、ItemPrice、ExtendedPrice、SpecialInstructions)
私はこれまでこれを行いましたが、私はまだそこにいないことを知っています:
CUSTOMER(CustomerNumber、FirstName、LastName、Phone、InvoiceNumber) INVOICE(InvoiceNumber、DateIn、DateOut、ItemType、Quantity、ItemPrice、SpecialInstructions)
私が読んでいる本によると、次の仮定はすでに整っています。
- CustomerNumber --> (FirstName, LastName)、CustomerNumber ではありません -->--> (FirstName, LastName)
- 顧客番号 -->--> 電話。顧客ごとに複数の電話番号がある場合があります。
- 1 人の CUSTOMER には多くの ORDER がありますが、各 ORDER は 1 つの CUSTOMER にのみ関連付けられています。
- 1 つの ORDER には多くの ItemType がありますが、各 ItemType は ORDER 内で 1 回だけ発生します。
- 商品価格は注文ごとに変わらないため、ItemType によって ItemPrice が決まります。
- アイテムごとに異なる指示が与えられる可能性があるため、SpecialInstructions は各アイテム タイプに関連付けられています。
- 注文番号は、特定の顧客とは関係なく、注文自体に割り当てられた番号です。したがって、「顧客 101、注文 1」、顧客 101、注文 2、顧客 102、注文 1 などではなく、「123454」、123455 などの番号があります。
- ItemPrice は、特別価格のオファーが価格に反映されるように、注文によって異なる場合があります。
誰でも私を助けることができますか?