also please go through with this blog.
Check this link,
good example to understand what is synthetic key and how to avoid it.
Hope you understand from this.
Are you used to dealing with data in SQL or similar? Normally you join columns explicitly, but Qlikview will join any columns with the same names so you have to be careful when naming your columns. You can avoid them by being more explicit in your LOAD (using JOINs) or creating new tables that link to others via one named column.