If I use Surrogate Key, there is a possibility of duplicate records and I can't refer them or put foreign key constraint to other fields since they can be unique only by combining all three fields.
You can have your surrogate key and still both eliminate the possibility of duplicates and create a referential constraint. Start by marking your candidate key columns as unique:
alter table PC
add constraint UK_PC_EMPName_PCName_PCType
unique (EMPName, PCName, PCType);
You can then add your foreign key like so:
alter table PCNetwork
add constraint FK_PC_PCNetwork
foreign key (EMPName, PCName, PCType)
references PC (EMPName, PCName, PCType);
I must say, however, that I don't totally understand your schema as described, so I'm not sure if there's a better way of modeling your data. That said, here are some observations:
PhysicalLocation
andPCType
seem like redundant data at first glance. You should decide which table they best fit.- You could have a column in
PCNetwork
refer back to you surrogate key inPC
, thus you wouldn't needEmpName, PCName, HostName
in PCNetwork (but still create the unique key inPC
).