You must consider two important issues when you work with disconnected data: primary key implementation and concurrency error (conflict) resolution. The primary key is the column or combination of columns that uniquely defines a row. Intelligent and natural keys both contain business-related columns that are normally viewed by the user, but surrogate primary keys are system-generated key values that have no relationship to the business data in the row. The GUID-Key implementation is considered the best approach for disconnected data applications.
Concurrency is the ability for multiple users to access the database and be presented with a consistent view of the data. On connected database applications, locking rows and tables enforces concurrency, but disconnected database applications allow concurrency errors, so the application must be written to resolve conflicting data. How you resolve conflicts depends entirely on your business needs. You can choose to implement these strategies: first update wins, last update wins, prioritized on role, prioritized on location, or user resolves the conflict.