Morgan Craft wrote:
If you are using DISTINCT probably means you need to normalize your data and look to join more appropriately. Also for creating indexes you really need to consider how you plan to access your data and how it will be used - which goes back to properly normalizing database tables. With properly structured tables you should be easily able to identify certain relationships and know where to put indexes - preferably columns that are used for JOINS and WHERE.

Good place to start:

http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html

Hope it helps


Thank you for that pointer. The three tables that I have are for pictures. One table contains everything that revolves around the file itself, such as storage location, rotation angle, addition and creation dates. The second table has the name and description for the picture. The third table holds all the categories that can be attached to a single picture. And that table will have more than one row for each picture, unless I limit assignment to one category, which is pretty useless. OK, I could force one row and have a column for each category, but then I set a hard limit on the maximum number of categories. With my approach I can change the maximum number of categories in code without requiring a different table structure. I can't see how I could reasonably normalize that and keep the flexibility that I have now. What happens when I want 10 categories today and 20 tomorrow and I do not want to add more tables or change exisiting ones?

David
_______________________________________________
New York PHP Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk

NYPHPCon 2006 Presentations Online
http://www.nyphpcon.com

Show Your Participation in New York PHP
http://www.nyphp.org/show_participation.php

Reply via email to