Hi,

no solution but some thoughts. You could store all changes of each user into a separate table and create a dedicated view for each user combining the changed datasets in his/her user table and those unchanged by this user from the original table. The user table would have a field user_action::char(1) with values i, u or d for (INSERT, UPDATE, DELETE)

CREATE VIEW userview AS
SELECT data FROM usertable
WHERE user_action != 'd'
UNION
SELECT data FROM originaltable
WHERE id not in (SELECT DISTINCT id FROM usertable);
--assuming id is the primary key

The user would edit this view and the view would be made editable through rules [1].

Once the job is completed the changes can be applied to the original table and deleted from the user table (by means of a DB function). You would have to make sure that deletes are executed first, then inserts and then updates. Maybe a timestamp of the change is useful to have only the last update executed for each dataset.

The main problem I see is concurrent editing of the same feature (e.g. user A changes feature 1 and in the meanwhile user B deletes it, then the application of A's changes has no effect). There used to be a plugin by Horst Düster called "PG Version" to handle this but I could not just find it.

Hope this helps

Bernhard

[1] http://www.postgresql.org/docs/9.3/static/rules.html

Am 02.12.2014 09:05, schrieb Manoj:
Hello All,

unable to post from original id, so trying my luck with another.


I need a suggestion to implement a workflow in QGIS.

Requirement is that edits are not visible to other user until field work
is over which means edits for a user is stored in temp table or in the
same table differentiated by a attribute.


So say I have road layer which is visible to all.

Any user work on road layer, their edits are stored in road_temp table.
Only owner user is allowed to see the new edits. The entry in db is
having user’s job id to find out.


Once he marks the job completion then others can also see.

So how I can make QGIS to show a combined view of two tables based on
the job opened or just existing +job data  if stored in a same table?

For example-


Existing data is – A, B, C, D

User A-  Job1- Created – E, Deleted C

So he his map showing- A,B, D, E

UserB comes- He still sees A, B, C, D.

He created another job- and added F.
So userB in his map viewing- A,B, C, D, F

User A- marked his job to complete.

Now UserB  in his map should see- A,B, D,E, F

Or which library is rendering the feature by getting from db (postGIS or
oracle)?


Thanks





__________ Information from ESET Mail Security, version of virus signature 
database 10811 (20141202) __________

The message was checked by ESET Mail Security.
http://www.eset.com


_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to