A family of Microsoft relational database management systems designed for ease of use.
Thanks for this - With job number - its across the multiple fields because I thought it needed to be this in order to record which jobs the orders are against?
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Hello,
I am new to database design and I am looking for feedback on a database that I have been asked to build in work. This database is to replace several spreadsheets with the goal of allowing multi-user simultaneous access.
Database Objective
The objective of this database is to manage our Job records. This has several functions:
I have several forms to allow users to enter data to each of the tables.
The database relationship is outlined below. I would appreciate any feedback that you can give.
A family of Microsoft relational database management systems designed for ease of use.
Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.
Thanks for this - With job number - its across the multiple fields because I thought it needed to be this in order to record which jobs the orders are against?
The basic model for purchase orders is:
Suppliers----<PurchaseOrders----<PurchaseOrderDetails>----Products
i.e. PurchaseOrderDetails models the binary many-to-many relationship type between PurchaseOrders and products by resolving the relationship type into two one-to-many relationship types.
JobNumber should be a foreign key in PurchaseOrders. The enforced relationship between Jobs and PurchaseOrders will thus ensure that orders can only be placed against an existing job.
As each supplier will supply a subset of products, there is also a many-to-many relationship type between Suppliers and Products which should be modelled by a ProductSuppliers table in the same way. It follows from this that PurchaseOrderDetails, in addition to PurchaseOrderID and ProductID foreign key columns, will also require a SupplierID foreign key column. Consequently ProductID and SupplierID in PurchaseOrderDetails constitute a composite foreign key referencing the composite primary key of ProductSuppliers. The enforced relationship between ProductSuppliers and PurchaseOrderDetails on these two columns will thus ensure the integrity of the data, preventing a product being ordered from a supplier who does not supply that product.
Data entry of orders will be by means of an orders form, in which will be embedded an order details subform, in continuous forms view, linked to the parent form on JobNumber. To print a purchase order is merely a case of designing a report based on a query which joins the Suppliers, PurchaseOrders, PurchaseOrderDetails and Products tables, grouping the report by purchase order, with the order lines in the detail section.
The model for invoices depends on your business model for invoicing jobs. You will need some means of costing each job, both on the basis of the products purchased in relation to the job, and other costs.
Designing an income and expenditure report per job should not be difficult, but like most things in a relational database it relies on your getting the underlying model right, so that the data can be returned by means of a query used as the reports RecordSource.
A report of jobs per manager requires the jobs table to include a ManagerID foreign key, assuming each job is assigned to one manager only. This will reference the primary key of an Employees table.
For starters: