Last time I set up public wifi in a restaurant I used a netgear WNDR3400 router. It has a guest wireless feature that when turned on and properly set up, allows for people to connect to it and use the internet. when set up properly, it will also prevent those wireless users from accessing your network, and can even be setup to prevent those users from being able to communicate with other users on the guest wireless. Since the “guest wireless” is a separate wireless ssid name, you could still have wireless devices on your network that you allow, such as an ipad.
Before that, I used 3 routers to achieve a public wifi. Since I only had 1 IP address from the internet company I had to use 1 router to split the signal to the other two routers, one was the public wifi and the other was the store network. This caused excess clutter in the office as well as made it difficult to manage, as I ended up running separate IP scopes on each to be able to log into each of them without doing a rewiring job everytime I needed to check a setting, etc.
Switching from the 3 routers to the 1 netgear router eliminated a lot of clutter in the office and reduced the amount of outlets I needed for power, and was a lot easier to manage as well.