Ok, so I am going to have at least 2 tables, possibly three.
The data is going to be as follows:
First, a list of search terms. These search terms are unrelated to anything else in the program (only involved in getting the outputs, no manipulation of this data at all), so I plan to store them separately in their own table.
Then things get trickier. I’ve got a list of words, and each word can be in multiple categories. So for example, if you have “sad”, it could be under “angst” and “tragedy”, just as “happy” could be under “joy” and “fulfillment”.
Would it be better to set up a table where I’ve got three columns: a UID, a word, and a category, or would it be better to set up two tables: both with UIDs, one with the word, one with the category, and set them up as a foreign key?
The ultimate role is generating number of words in a given category over a given period of time.
I’ll be using MySQL and Python (MySQLdb) if that helps anyone.
Ignoring your ‘search terms’ table (since it doesnt seem to have any relevance to the question), I would probably do it similar to this
Add foreign key constraints from the ids in wordcategories, onto word and categories tables