This is what I usually make. I build rigid sets of leg pairs (front and back legs) of a suitable size to support whatever material I want to use for the top. If I build those like tanks, then I only have to worry about ensuring that the bench can't rack over. I like to use 1/2" mortice and tenon joints, pulled up tight with a suitable coach screw.
This is a rough working drawing for one I'm building at the moment, out of recycled timber.