Bespoke Database Design

We are experts in bespoke database design. We will take the time to understand the specific requirements of your project and will carefully design and build a bespoke, web-based application tailored to your unique requirements. Whether you are looking for a brand new system, or are looking to modify an existing system, we will manage the whole project for you to ensure you have a robust application that is up and running as quickly as possible. Our systems can be modified to grow as your requirements change over time.

Our applications are written in open-source software (APACHE / PHP / MySQL) which keeps costs to a minimum. They can be hosted on your own internal servers or we can provide a fully managed solution hosted in the Cloud. Please get in touch to discuss your specific requirements - there is no fee for initial consultation.

Getting Database Design Right

The key to any successful project is thorough planning and getting the foundations built correctly - this is especially true with database design!

A database is a series of tables that store information in a structured way that allows the tables to be linked (or more technically correct: joined) to display the data in any possible way required. The tables can then be queried to extract specific information.

Each table should only store information on a specific entity. Ensuring information is stored correctly is a process known as "Normalisation".

Each table should have a primary key. This is a field that contains unique information that allows an individual record to be selected. A table may also have one or more foreign keys. A foreign key links to a primary key in another table.

For example, you may need to store customer information and have several contacts for an individual customer.

You may be tempted to store all of this information in one table similar to:

  Customers Table
  Customer_Name
  Street
  Town
Poor Design County
  Post_Code
  Tel
  Contact1
  Contact2
  Contact3

There are two fundamental errors with this design:

  1. The table has no Primary Key
  2. Table should not contain repeated information i.e. contacts

This design forces three contacts to be added to a customer.

This is inefficient if only a single contact is required

What happens if a customer has more than three contacts?

A better design is shown below:

 



Better Design Good Database Design

This is a much better design:

  1. Both tables now have a primary key
  2. The contacts table now links to the Customers Table via the Customer_ID field

Customer_ID is the primary key in the Customers table and it is a foreign key in the Contacts Table

The SQL statement to join these tables would be, for example:

Select Customer_Name, Contact_Name from Customers join Contacts on Customers.Customer_ID=Contacts.Customer_ID where County="Worcestershire"

Don't worry, we will work out the best design to store all the information for your particular project to ensure your application works quickly and efficiently. We have already created several database applications, our most popular being:

If the existing system meets your requirements it can be implemented immediately, but if not we can modify the systems fairly quickly to meet your exact requirements.

Please take a look at our Products & services page to see other database systems that we have worked on.

Don't worry if you are looking for something different - we can build a fully bespoke system designed from scratch, to your specifications.