473,387 Members | 1,597 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

How should I go about this?

Hi Guys,
I'm kinda new to mysql and have a question.

Say you have a scenario were you have information that needs to be stored, but in groups.

So I might be running a business that requires me to keep track of hair appointments.

Each appointment is a job.
Every job could have multiple services.
every service could have multiple products associated with it.

I would like to make it so that the mysql table could store multiple instances of products in a service and multiple services in a job.

Can this be done? Any advice would be much appreciated!
Dec 29 '11 #1

✓ answered by Stewart Ross

Best advice I can give you is to read up on relational database design. We have an introductory article on Database normalisation and table structures in our Access section which is a very good place to start.

-Stewart

5 1798
Stewart Ross
2,545 Expert Mod 2GB
Best advice I can give you is to read up on relational database design. We have an introductory article on Database normalisation and table structures in our Access section which is a very good place to start.

-Stewart
Dec 29 '11 #2
Thank you stewart, i'll check it out!
Dec 29 '11 #3
Stewart, thanks again for the guide, that was helpful. I still have a question if you dont mind:

I have separated my tables in such a manner that has a primary key relating an id per service and then a separate table with it's own id based on products available.

For simplicity:


Services
S_id Name
0 hair cut
1 color hair
2 trim eyebrows


Products
P_id Name
0 hair color brown
1 Toe nail clippers
2 shampoo


How would these tables then be combined into a single table to show a single invoice?
That tracks an invoice id(single), the services used (multiple), and Products used (multiple).
Dec 29 '11 #4
Stewart Ross
2,545 Expert Mod 2GB
Tables themselves do not get combined at all; the whole purpose of relational design is to separate out related entities, not to combine them. Relationships between these tables are defined and set so that the one-to-many relations, in particular, are known and resolved. This is the thrust of the article I suggested you read.

There are occasions when you need to define a linking table to resolve many-to-many relationships (decomposed into two one-to-many relationships), but I don't think that is what you are asking here.

When you need to combine tables together to produce invoices etc this is done by devising a suitable query on the joined tables. The base query has the effect of providing you with a logical view of the data that does not reflect the way the data is stored. The table structure, if properly designed, is free from the potential for update and other anomalies that will always result from implementing un-normalised relationships.

A report can be based on an invoice query so that you can print a suitable invoice for the customer, for example.

I would urge you to explore relational design in depth before you move on - it takes much practice to get it right. Get yourself a good introductory book and work through the exercises - there is no substitute for this, as you will only learn how to normalise data by implementing real examples.

-Stewart
Dec 29 '11 #5
Thank you stewart, that was very helpful!
Dec 29 '11 #6

Sign in to post your reply or Sign up for a free account.

Similar topics

4
by: James | last post by:
I have a from with 2 fields: Company & Name Depening which is completed, one of the following queries will be run: if($Company){ $query = "Select C* From tblsample Where ID = $Company...
5
by: Scott D | last post by:
I am trying to check and see if a field is posted or not, if not posted then assign $location which is a session variable to $location_other. If it is posted then just assign it to...
2
by: Nick | last post by:
Can someone please tell me how to access elements from a multiple selection list? From what ive read on other posts, this is correct. I keep getting an "Undefined variable" error though... Form...
2
by: Alexander Ross | last post by:
I have a variable ($x) that can have 50 different (string) values. I want to check for 7 of those values and do something based on it ... as I see it I have 2 options: 1) if (($x=="one") ||...
0
by: Dan Foley | last post by:
This script runs fine, but I'd like to know why it's so slow.. Thanks for any help out there on how i can make it faster (it might take up to 5 min to write these 3 export files whith 15 records...
5
by: Lee Redeem | last post by:
Hi there I've created abd uploaded this basic PHP script: <html> <head> <title>PHP Test</title> </head> <body> <H1 align="center">
5
by: christopher vogt | last post by:
Hi, i'm wondering if there is something like $this-> to call a method inside another method of the same class without using the classname in front. I actually use class TEST { function...
6
by: Phil Powell | last post by:
Ok guys, here we go again! SELECT s.nnet_produkt_storrelse_navn FROM nnet_produkt_storrelse s, nnet_produkt_varegruppe v, nnet_storrelse_varegruppe_assoc sv, nnet_produkt p WHERE...
1
by: Michel | last post by:
a site like this http://www.dvdzone2.com/dvd Can you make it in PHP and MySQL within 6 weeks? If so, send me your price 2 a r a (at) p a n d o r a . b e
11
by: Maciej Nadolski | last post by:
Hi! I can`t understand what php wants from me:( So: Cannot send session cache limiter - headers already sent (output started at /home/krecik/public_html/silnik.php:208) in...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.