Miss would only make sense to go BEFORE everything else, as all the other calculations can be skipped (and thus be more efficient) in the case of a miss. So the order should be:

Miss% -> Crit (since it is never effected by Block or Parry) -> Block (evidence to prove Block > Parry) -> Parry

You do it this way so you can ignore/skip the rest of the chain, and thus be more efficient, the moment one of the flags is thrown. IE: If it's a miss, there is no need to calculate whether it could have been a crit/parry/block etc.

As a programmer, I'd definitely have each as their own separate roll. If you have it in a table, you have to calculate the whole table at the start each time, instead of having a couple of smaller operations that only conditionally need to be made IF they are applicable.