The reason that I have two separate tables is because there will be a point in time when I have categories that have no listings in them. Originally, I had cat_name as a column in the Listings table, however this prevented me from adding categories unless I added a bogus listing with the desired category name. Also, keeping a separate table for categories allows me to store a description of each category. right now the tables are set up like this:
Categories:
cat_id ; cat_name ; cat_description
1 | books | fiction only |
2 | candy | lollypops and candy bars |
3 | appliances | toasters, ovens, fridges... |
4 | animals | dogs, cats, bats, monkeys |
Listings:
id ; cat_id ; title ; description
1 | 1 | Moby Dick | 1st edition, signed |
2 | 4 | Curious George | neutered, no longer curious |
i hope thats enough to convey my meaning
edit it didn't format quite as i expected, sorry if its confusing..