And that is where I'm stuck. I've tried a lot of different combinations but keep getting stuck. Let me explain the data and hopefully someone will be able to point me in the right direction.
Using a coffee shop as an example:
A restaurant can have many different categories (espresso-hot, espresso-iced, etc), and conversely, a category can belong to different restaurants (starbucks, peet's coffee, etc).
An item (mocha, latte, etc) may have options like type of milk, with or without whipped cream, etc. I guess it would be possible for those options to relate to many different items, but right now I am thinking that it would be a 1 to many (items to options) relationship.
Lastly, an item belongs to a category, but for a specific restaurant. And that seems to be one of my big confusion points. What is the best way to show that relationship in a table. If I put a FK reference to restaurants in items, I wouldn't know what category it belonged to. So, I'd have to put a FK reference to categories...but then do I even need the many-to-many table for retaurants_categories?
I guess on option is to put an id in the retaurants_categories table and put a FK from items to that id...but that doesn't seem right, for some reason.