I was having a discussion with a friend of mine about this... and I couldn't come up with the best explination. Hopefuly someone here can point me in the right direction.
He has a table
Recipies(Id, name, item1, quantity1, item2, quantity2, item3, quantity3, item4, quantity4)
I don't believe that this is the proper way to create a table. What happens if you happen to come across a Recipie that needs 6 items?? or more??
After researching it, I believe it violates 2NF. Is this correct?
Instead I think a better structure would be
Recipies(Id, name)
RecipiesIngredients(Recipies.ID, Ingredients.ID, quantity)
Ingredients (Id, Name)
The problem my friends sees with this method is the fact that the Xref table will get giant.
In the example... Speed is of utmost importance, as the tables will most likely contain thousands of records and be queried against frequently.
Thanks for any input.
-Mike
He has a table
Recipies(Id, name, item1, quantity1, item2, quantity2, item3, quantity3, item4, quantity4)
I don't believe that this is the proper way to create a table. What happens if you happen to come across a Recipie that needs 6 items?? or more??
After researching it, I believe it violates 2NF. Is this correct?
Instead I think a better structure would be
Recipies(Id, name)
RecipiesIngredients(Recipies.ID, Ingredients.ID, quantity)
Ingredients (Id, Name)
The problem my friends sees with this method is the fact that the Xref table will get giant.
In the example... Speed is of utmost importance, as the tables will most likely contain thousands of records and be queried against frequently.
Thanks for any input.
-Mike