esta bien pero deberias hacer que el registro reg_id haga referencia a la tabla regiones sino podes poner cualquier valor en el mismo y este no pertenece al id de ni una region a menos uqe hagas un procedimiento almacenado para uqe te verifique esto pero seria mas complicado.
Luego en la tabla empresas me parece que estas mesclando datos de lso empleados tambien por ejemplo dni esto no es conveniente deberias hacer una tabla empleados a parte y en esta tambien debes hacer que los campos reg_id y ciudad_id sean claves foraneas con referencias a dichas tablas
el insert para la tabla ciudades deberia quedarte asi:
insert into ciudades(ciudad_id,nombre,contador,reg_id)values(i d,nombre_ciudad,contador,registro de alguna region)
http://dev.mysql.com/doc/ refman/5.0/es/index.html
ahi tenes un manual de mysql y leete algun apunte de sql tambien eso te va a servir
con respecto a lo del contador no se para que lo usas no te puedo decir que valor llevaria
en ves de key reg_id deberias poner algo asi
foreignkey reg_id reference(tablaregiones) no se si esta bien escrito
http://190.41.224.185/biblioteca/Inf...urso%20Sql.pdf
ahi tenes un curso de sql no lo lei pero parece estar bueno y el link anterior es sin el espacio lo puse asi por que pense uqe no me dejaria poner links