It may be that I am missing something fundamental here.
Let's imagine for simplicity that there are just 2 inspectors, A & B. Each has a laptop loaded with a brand new empty copy of the database.
In a central location on a server there is a third copy of the database, again brand new and empty.
(A) enters 2 records, lets call them A1 and A2
(B) does likewise and creates B1 & B2
These records now need adding to the database. (A) clicks a button labelled "EXPORT" which I have set up to create a CSV file. He emails this to the central database admin person. He "appends" A1 & A2 to the empty database. These records have PK=1 & PK=2 on both (A)'s laptop and the main database.
(B) exports his records and the data admin person appends these. The main database now contains A1, A2, B1, B2 with PKs = 1,2,3,4 respectively.
(B) now gets some feedback from his record B2 and updates it on his laptop. He also does another check and adds it to his laptop. Call this B3. He exports again.
Data admin appends. Becasue the PKs don't match, the main database will now contain A1, A2, B1, B2, B1, B2, B3. The two B1s will be duplicates, the two B2s will be the original and the updated record. A complete mess!
What needs to happen is that when the data admin person appends the 3 records from (B)'s laptop, the main database should ignore B1 (it's the same and unchanged), update B2 (it's been modified) and add B3 (it's a new record).
In my inexperience, I assumed that to do this I would need to make sure that ALL PKs were unique so that, for instance, (A)'s records would have a PK of A01, A02 and (B)'s records would have PKs of B01, B02 and B03. The main database would not then need to re-create PKs and when (B) gets his export inputted to the main database, the main database records could be over-written because they can be automatically identified.
Does this make sense? I'm not sure anymore lol.
no-one will use the main database to add or change any records. This will only be used for reporting. consequently the laptops will always contain the most up to date versions of each record. There is no point (and it would be too messy) in sending the main database to all the laptops.
hope this helps
thanks for your interest
Dave