I like the bar workshop. But instead of making it just use up so and so number of tables and chairs make the bar where they pick up the booze(in mugs if available) and make the bar have an extendable area (like bedrooms and dining rooms) to take up as many tables and chairs as wanted. That way if you want to make your bar the same room as the dining room you can. You can customize the bar's layout as well.
The bar itself takes 3 chairs for the chairs at the bar itself but otherwise only needs a block of any material (must be a block, bar, or log no raw stone.) And have the bartender restock the booze when empty. One bar holds up to 3 barrels.
The bar will sit 3 dwarves by itself and use the designated tables when necessary. The bartender influences the happy thought gained with his/her social skills. If the bar is open, but there are no seats left available the happy thought gained is cut to 1/4th(or full gain, then reduced when they can't find a seat with a unhappy thought.), but they will still drink out of a mug instead of a barrel. When there is no bartender they will take booze with a mug, and seat themselves but will get not get the bar happy thought. If there is no bartender or empty seats, they drink from the keg.
EDIT:If the bar has no booze, it is ignored until the bartender restocks it. The barrels get freed from the bar when empty. A 'close bar' command is also available which removes the barrels from bar ownership and closes the bar until reopened.
Sorry for the detailed suggestion modification.
[ January 06, 2008: Message edited by: Greiger ]