I'm looking into providing a map amendment service for a particular map series. The service will help map owners look into the changes made to the operational features of the map, after the map was published.
There are three basic types of changes: 1) An object has been added. 2) An object has been deleted. 3) An object has changed, either an attribute or its geometry.
For object changes, the user should get both the old and the new value of the attribute or geometry.
Now, I'm looking into a clever way to implement this.
The basic idea is that the database administrator edits the map data in an interface, just as he would edit a normal map, and the rest is taken care of behind the scenes.
As I see it, there are two basic approaches: 1) Store the changes in a separate table, and keep the main database current. 2) Timestamp the records in the main database. In case of changes, I cannot change a record, but timestamp the old one as expired and add a new urrent one.
My main concern is not performance (not huge amounts of data), but ease of implementation. Is there a way I can make the DBMS (say, PostGIS) handle this automatically (for example by using triggers), Or can I build my own interface on top af an exisiting GIS (say, QGIS or ArcGIS) to handle the storage of records in the various tables as the database administrator makes changes to the map. Preferrably, I'd like a Web-interface.
Any Ideas anyone?