El problema (uno de ellos mejor dicho) lKinGl, como bien lo has descubierto, es que se rompe el esquema cuando se altere ya sea la cantidad de choferes como de sitios.
El asunto está en encontrar alguna manera de estructurar estas asignaciones de forma independiente de la cantidad. Es decir, establecer un modelo (tal vez matemático) que permita realizar todas estas asignaciones para M choferes y N sitios.
Inicialmente tenía pensado que tal modelo podría ser fácil de encontrar, ahora me temo que no es tan sencillo.
Al ser un proceso manual no es muy fácil verlo, y eso complica a que se pueda desarrollar algun procedimiento automático que pueda satisfacer al 100% los requisitos.
¿Porqué digo que encontrar un modelo matemático es difícil? Porque no hay una proporción tan lineal entre choferes y sitios. No es el "mismo" procedimiento a seguir cuando en un escenario se tienen 20 choferes y 10 sitios, que de otro escenario con 30 choferes y 10 sitios.
El asunto de como estructurar las tablas tampoco será fácil. Por empezar, lo que comentas sobre el código que se autoincremente... no lo entiendo. Creo que estás un tanto mariado. ¿Desde cuando un código asociado a un chofer se incrementa?

¿Qué haz querido decir?
Digo que no será fácil puesto que entre las hipotéticas tablas CHOFERES y SITIOS muy posiblemente no exista una sola tabla "intermedia". Si lo que se busca es armar planes de rutas semanalmente habrá que estructurar la información de modo tal que se consiga armar los reportes adecuadamente.
Este diseño puede alterar la manera de como lleves a cabo la programación del sistema. Deberás poner en la balanza ambas cosas, por un lado desde la perspectiva del sistema software y por el otro el diseño de las tablas que forman la base de datos.
Saludos,