Hi @Drew, I’ll chime in. All in all, your data structure seems fine to me.
My rows are dates. If I create a sheet for a pick-list of food items, I can currently select a food item for that day and enter it into the row for that day. Obviously I’d want to be able to add multiple food items.
One of your sheets is a log of the foods you’re eating, by date. So each row represents a time period (you chose days), and this makes a lot of sense.
For each day (row), somehow the system needs to know what foods were eaten on a given day, so there needs to be an association (this is not a technical term). So it makes sense to have one food item per column, for instance “Breakfast item 1”, “Breakfast item 2”, “Breakfast item 3”, “Lunch item 1”, “Lunch item 2”, etc. Why one item per column? From a data perspective, it is easier to handle the data when each data point is separate from the others. Inconvenience here: you might need to go to number 10, 15 or 20 for each meal of the day, depending on how granular/precise you want to be.
If I create a sheet for a pick-list of food items, I can currently select a food item for that day and enter it into the row for that day
Supposing the foods you eat can be chosen from a list, it makes sense, in a separate sheet, to have a running list of “foods”, “drinks”, etc.
I don’t quite understand the power of relations yet
A relation allows you to relate a table (a tab in your spreadsheet) to another table (a different (or same, but let’s not get into that) tab in your spreadsheet. In your case, you want to relate “days” to “foods”.
Example: On “Day 1” for breakfast your drink “Milk”. In your app, somewhere in a component, it says “Day 1”. Because in row “Day 1” your indicated “Milk”, you can also display “Milk” in that same component. Now let’s say you wanted to display information, for instance calories from a “Calories” column, from the “Milk” row in your “Foods” tab (this is another chart). This is where the relation comes in. With a relation, though your component still seems to be fetching data from row “Day 1”, it actually sees “Milk”, relates that piece of data to another chart, looks at the “Milk” row. With the relation, you’ve fetched an entire new row from a different chart. Now to fetch a specific cell (in my example “Calories”) from the “Milk” row, you will use a lookup.
to be able to do individual food item tracking, will those additional columns of food items for each day need to be on the main sheet? Sounds like I need a column for each food item?
Yes to both questions, I would agree with you.
Another problem I have is how to add / modify that list of food items so users can add new food along the way.
I agree with @ThinhDinh: “if you want people to add new choices, then just show a text entry in the form saying if you didn’t find your item, write them out here.” You would allow your users to write (=add) food items to the “Foods” list.
My answer is a tad long, but I hope it helps somehow.