Here's my current situation:
We have a table storing data submitted from the website form, say "MyTable". The table uses bigint (auto-increment) as the primary key. Everything is good so far.
Now, that table is required to be able to store the records uploaded from the mobile devices. But the records uploaded from the mobiles are to be verified first before being stored into the "MyTable". Hence, a staging table is created, say "Temp_MyTable".
In other words, this is the flow:
Mobile devices ------> Staging Table ------> Actual Table
[GUID as PK] [bigint as PK], [GUID as FK]
So, now, i want to reference back the records of the Actual Table to the Staging Table. In this case, a Foreign Key 'probably' required. Unfortunately, it is the GUID data type.
And after reading a number of articles, it seems that using GUID as the Foreign Key may be disadvantageous - more storage or slower.
I would like to know, is it Ok to use GUID as the Foreign Key? Can someone justify that it is actually 'perfectly fine'? Or is there a better design?