Tu problema es más de la aplicación que de la base de datos.
Cita: Mi idea es programar una aplicación que se use en la oficina normalmente vía internet pero cuando los usuarios tengan que trasladarse a un lugar sin internet se pueda sincronizar previamente la BD de internet con la BD local, se haga el trabajo en el lugar sin internet y luego, al regresar a la oficina, vuelva a sincronizar con la BD en internet y agregue la información a la misma.
Esto que pides, se diseñó hace mucho, y en realidad funciona, pero no es problema tanto de la base de datos local o la remota, y es el mismo principio con que funcionan los sistemas usados por los vendedores, repartidores y cobradores de empresas grandes.
En ambos casos estarías trabajando con
el mismo esquema de bases de datos, solamente que debes programar la interfase para que cuando se conecte nuevamente a la red, se balanceen los datos, y eso es problema de la aplicación...
Lo que debes pensar no es el esquema, es cómo diseñar la interfase que genere el balanceo de datos.