My suggestion is to use a simple bitmask type of field:
For example:
1 = breakfast
2 = brunch
4 = lunch
8 = dinner
You can add more if it becomes necessary.
If a restaurant has both breakfast and lunch but not brunch nor dinner, that's 1+4, so the column gets 5.
If a restaurant has all of the above, that's 1+2+4+8, which is 15.
It's probably not the most readable for future db maintainers, however. It is, however, a simple way to have one column indicate multiple options.
Edit:
This is just simple binary manipulation. It works like this:
Dinner Lunch Brunch Breakfast
-------- ------- -------- ---------
0 0 0 1 1 (Breakfast only)
1 1 0 0 12 (Dinner + Lunch)
1 1 1 1 15 (All four)
The advantage of this kind of field is that you can add additional menu types with no change to the database, assuming your int field is storing enough bits.
In your program, you can determine what kinds of menus are available with some bitwise operators. In C#, for example:
const int BREAKFAST = 1;
const int BRUNCH = 2;
const int LUNCH = 4;
const int DINNER = 8;
int RestaurantMenuType = 5;
bool OffsersBreakfastMenu = (RestaurantMenuType & BREAKFAST) == BREAKFAST;
bool OffsersBrunchMenu = (RestaurantMenuType & BRUNCH) == BRUNCH;
bool OffsersLunchMenu = (RestaurantMenuType & LUNCH) == LUNCH;
bool OffersDinnerMenu = (RestaurantMenuType & DINNER) == DINNER;
Console.WriteLine("Offers breakfast? {0}", OffsersBreakfastMenu ? "Yes" : "No");
Console.WriteLine("Offers brunch? {0}", OffsersBrunchMenu ? "Yes" : "No");
Console.WriteLine("Offers lunch? {0}", OffsersLunchMenu ? "Yes" : "No");
Console.WriteLine("Offers dinner? {0}", OffersDinnerMenu ? "Yes" : "No");