Q:

DB schema, many-many or bool values in table

If I have a bunch of restaurants in my db, and each restaurant can have either a lunch menu, dinner menu, or brunch menu, does it make sense to have boolean values in the Restaurants table like so:
Restaurant id | Restuarant Name | Address | etc.. | Lunch Menu | Dinner Menu | Brunch Menu
Or should I create a menu table, and then have a RestaurantMenu table (many-many relationship)
Menu id | Menu Name
1   |  lunch menu
2 | dinner menu
3 | brunch menu

A:

Another suggestion is that you use a linker table. This would be more maintainable and easily documented. A linker table is used when you have a many-to-many relationship. (A restaurant can have many types of menu, and a particular type of menu can be utilized by many restaurants.)
This lets you add additional menu types as a row in a "menu_types" table later, without changing the structure of any table.
It does make your queries somewhat more complicated, though, as you have to perform some joins.
First, you would have three tables something like this:
restaurants
---------------
id    name
1     Moe's
2     Steak & Shrimp House
3     McDonald's

restaurant_menus
----------------
restaurant_id    menu_type
1                1
1                3
2                4
3                1
3                3
3                4

menu_types
---------------
id    type
1     Breakfast
2     Brunch
3     Lunch
4     Dinner

So, to see what kind of menus each restaurant offers, your query goes like this:
SELECT r.name, mt.type
FROM restaurants r
    JOIN restaurant_menus rm
        ON (r.id = rm.restaurant_id)
    JOIN menu_types mt
        ON (rm.menu_type = mt.id)
ORDER BY r.name ASC;

This would produce:
name                  type       
--------------------  -----------
McDonald's            Lunch      
McDonald's            Breakfast  
McDonald's            Dinner     
Moe's                 Breakfast  
Moe's                 Lunch      
Steak & Shrimp House  Dinner     

