Tell you what I'd do, then.
First, get rid of faith schools, grammar schools and private schools.
Divide areas so that you have maybe four schools in a group, and within that area a lottery system: I know this would have to be tweaked in some places, but it would be based on the idea that most kids have at least two schools they could walk/get to, and some, like in villages, will always have to bus it. Where I live I reckon most kids could get to three or four schools, and so if we lost the privates and made the catholic school take everybody, that would work. At the moment, say where I live, half a street is assigned to school B which is considered less desirable than school A, where the other half go.
So I'd have a lottery and kids would still, by and large, go to a school near them and in their community, and school B wouldn't become progressively less and less desirable as the wealthy and motivated either move away, lie, or go private.
I know it's flawed, because I can immediately see that if you divided my city up, quadrant 1 (for example) would be considered more desirable than hypothetical quadrant 2.
However as it stands at the moment, far from the 'nice' houses being nearest the 'nicest' schools, there are big areas where you can buy a very nice house, but near to the school no-one will touch with a bargepole. So within each quadrant there are schools which are equidistant from certain houses, and if we could mix up the intake a bit, I think everyone would end up benefitting.