My situation is :
- I have a number of client applications, which is using local DB (MS SQL, MS Access - sorry, this is Enterprise system, I have to support legacy...)
- I don't know anything of trend among clients - now it's ~10 but it may be ~100 in a year.
- Data from those tables comes to my central server and is put into one common table
- Sometimes existing (client) data is changed - I have to perform update/delete operations
- I don't want use GUID's (.NET type
System.Guid
) - It's hard to simply implement and support on MS Access. Besides, it's not good for performance - I need a fast search on that common table, so it would be nice to use
int
orlong int
as a PK
So, I want:
- Something unique to avoid collisions (it will be used as a PK)
- It should hopefully be
int
orlong int
- Must be assignable client-side before being inserted
My current solution is to take the CRC from a concatenation of:
- ProcessodID
- Bios date
- User name (strings, hardware\user related data)
- DateTime.Now (UNC)
Currently it works for me, but maybe there is a better approach to achieve my goals? Any comments, suggestions, examples, or experience of your own?
UPDATE : synchronization between client and server is periodic action, so it can occurs 2-3 times per day (it's config variable)