Table Design for Customers and Endusers

sunny8760

New member
Local time
Yesterday, 21:05
Joined
Apr 12, 2015
Messages
9
Hi All,

I’m new to MS Access. I am working on a project to improve an internal quotation process.

My company is a manufacturer and reseller of products to the industrial sector. We often have customers from all over the globe asking for quotations on our products. A typical request may have anywhere from 1 to 5 products. These quotations are simple in nature but their recording and processing is all done manually. I would like to get away from using excel based forms and quotations and build a simple database to capture the essential information that can be mined later for other purposes.

The business/transaction for a quotation request is like this:
1. An Enduser (company that will use our product) will request their supplier to find manufacturers like us.
2. The Supplier will come to my company asking for a quotation and provide details about their company and their Enduser.
3. This information is used to produce the quotation and is sent to the supplier company who then forwards it to the Enduser.

Based on this I have decided that the following tables are an efficient design:
1. Products
2. Orders
3. Order Details
4. Customers
5. Endusers

Table 1: Stores product information (essentially list price, product names and model codes).

Table 2: Stores information about the order (order number, date requested/produced, and other administrative information). It functions like a connecting table to connect all the other tables together.

Table 3: Stores details about the products related to the order. Since there can be multiple products, this table will be ran through a query and used as a subform on the Order’s form. Also, since prices may change, I believe it's best to use a Dlookup function to feed this information through to the forms. Please tell me if this is the best approach.

Table 4 and 5: This is the source of my problem. Both Customers and Endusers have essentially the same information, except we want to know whether the record is a Customer or an Enduser. Both must appear on the form for selection and on the final quotation.

Question:
1. Should I use two different tables to store Customers and Endusers information? I feel like this goes against database design principles because both tables essentially store the same information.
2. Should I store the information for these two tables into one table and then use a MtoM relationship with the Orders table?

Please let me know what you think about how I should design this.

Thank you,
 

Attachments

  • Capture.PNG
    Capture.PNG
    26.9 KB · Views: 136
You shouldn't have tables with identical fields, so the 2 tables should become one. If you need to differentiate between the two types in the table you add a new field to do so---[CustomerType].

I think that's all you need to do. I would leave tblOrders as it is.
 
You shouldn't have tables with identical fields, so the 2 tables should become one. If you need to differentiate between the two types in the table you add a new field to do so---[CustomerType].

I think that's all you need to do. I would leave tblOrders as it is.

Thank you for the quick reply.

I will combine the two tables, but I'm not sure how to reference two records from the customers table to one order form. The way I plan to create an input form is to use a query from the Orders table and from the Customers table. I will also use a subform for the Order details. My question is, how can I create two drop down menus to select a customer and an enduser?

Another way to ask this is, should I have a MtoM relationship between the new customers table and the orders table?
 
While reading another post I have determined that it most likely will be a MtoM relationship.

Thanks for your help. Lots to learn... :-)
 
If your definition is that a Customer is who you bill and effectively the End user is just a delivery site then I would put them in two separate tables. Customers and SiteAddresses.

You can, if you want to link the customer to a number of delivery addresses.

If it's just a identification of a different type of customer then the previous replies are spot on. (IMVHO)
 
You don't need another table. You can use your existing tblOrders and link it directly, to your single table for Customers/EndUsers. In the relationships screen, you would bring in that new Customers/EndUsers in twice, linking one instance to each of the fields in tblOrders
 
You don't need another table. You can use your existing tblOrders and link it directly, to your single table for Customers/EndUsers. In the relationships screen, you would bring in that new Customers/EndUsers in twice, linking one instance to each of the fields in tblOrders

Thank you for your help.

So are you saying that a 'junction' table is unnecessary?
 
Yes, that is correct.
 

Users who are viewing this thread

Back
Top Bottom