Originally posted by Kudose
No multiple tables.
Personally, I would save them in the DB as an array seperated by comma's.
i.e. databases,scripts,graphic programs,etc
This is my opinion, but this is probably the laziest and quickest way to do it. But its also a very bad way of doing it.
Without knowing your design specs its hard to come up with "the correct answer" (maybe storing at as array is perfectly all right in your scenario). But to argue why NOT to store the choices as an array:
Database's and tables are not designed to store arrays. You can do it, but that defeats the purpose of having tables.
By storing the array in one field, how do you find all folks who have selected "graphics programs"? Sure, you can do a string compare using LIKE, but the performance will be pretty ugly versus doing it off of an ID. It gets ugly when you want to select those who choose "graphics programs" and "video editors".
If you have the urge to store an array, then it means you need 2 tables. Its a simple matter of building 1 additional table to keep track of an user ID or response ID and the category ID. The 2nd table would actually keep track of the category ID and the name of that category (such as "graphics programs"). When it comes time to add an additional category, all you should have to do is add it to the category table and you're done (assuming you coded your PHP correctly - this means you wouldn't have to update ANY PHP or HTML).