A system and method for efficiently synchronizing multiple databases stored on
multiple computing devices. The method and system provides a duplicated database
configuration where a database can either be stored only on a plurality of client
computers, or on at least client computer and a server computer. This duplicated
database configuration allows users to access a database from a plurality of client
computers that are communicatively connected to a server computer. In one embodiment,
the method and system synchronizes the databases of a client computer to the database
of a server computer by downloading selected database objects from the server computer
database, thereby minimizing the amount of data transferred between the client
and server computers. The synchronization routine selectively downloads database
objects based on a comparison of server access time indicators stored in the databases.
If the server access time stored in the server computer database is earlier than
the access time stored in the client computer database, the server computer downloads
the entire server computer database to the client computer. If the server access
time stored in the client computer database is earlier than the server access time
stored in the server computer database, the server computer only downloads new
database objects from the server computer to the client computer. The synchronization
routine also provides for reducing the likelihood of synchronization errors by
detecting expired client computer databases. If a particular client computer database
is expired, the server computer replaces the client computer database with the
server computer database.