I keep getting confused trying to normalize this data.
A company makes and sells a product online. There are ten types of Products, each having a code and price.
Their Sales Order department takes customer information (name, address, trimmer product code and purchase quantity) from a simple email posting.
The products are shipped to the customer and the shipments logged into a delivery book, giving customer name and address, shipper (Parcel force, TNT, ANC, Overnite, Royal Mail), date shipped, quantity and product code.
Products are sold on a 30 day return policy, so after one calendar month of shipping an invoice is sent to the customer. The invoice details each product line supplied, unit cost of each line and sub-total, as well as the shipment date and the overall invoice cost (grand total).
Customer payments (cheque numbers) are logged and matched against a copy of the invoice before banking. Every month the log is searched for outstanding debts and these are compiled into an outstanding invoice report.
This data has helped me alot when it comes to understanding what I need to do in terms of my final database, but I'm finding normalizing it tricky as I've got so much information. So I came up with this:
I would appreciate it if someone could give me some feedback and advice as this attempt feels wrong.