The nice thing about WordPress is that you can go a few different routes w/ trying to accomplish this.
One route that's worked well for me is to list each business as a post and then create categories and sub-categories to house these businesses. Once this is done, you can create custom templates for either category templates (so if your have a category named 'Food Establishments' and it has the category id of 5, you can create a template named category-5.php and then WordPress will know to look to that template first and then move on to the regular category.php file and so on).
In your category template you can then list out each sub category w/ a function like wp_list_categories();
and call out the children categories from there.
The other option is to still go the route of entering in your businesses as a separate post, filing them under the appropriate categories. But instead of creating a category template, you can create a page template. You'll need to do a few things for this
Pre-prend your template file w/ the necessary template syntax to tell WordPress to look for that as a template file such as:
< ?php /*
Template Name: Food Establishments
*/ ?>
Create a page in WordPress using this new template
In your page template create a new query, pointing to this category, such as:
< ?php $business_food = new WP_Query('cat=5'); ?>
< ?php if ($business_food->have_posts()) : while ($business_food->have_posts()) : $business_food->the_post(); ?>
< ?php the_content(); // and do other stuff here ?>
< ?php endwhile; endif; ?>
There are other options you can do as well, and for those, I would hang out some WordPress user groups to see if you can grab some other ideas.