We are creating a Data Mart consisting of around 8 Star Schemas, each representing a business event, process or reporting set of data. We have an equal mix of Transaction, Snapshot and Accumulating Snapshot schemas. The value we are intending to use in most fact tables as the primary key is ContractID however in the source DB this is a string in this format "X12345.001".
I have read a couple of contradictory opinions on the use of strings as PKs:
Strings as Primary Keys in SQL Database - The top answer in this article suggests it is ok but the question is not Data Mart specific.
String as primary KEY? - The top answer in this article is dead set against the use of strings as PKs.
The Data Mart content will never be huge (low millions of rows across all stars, never billions). It would be less effort to use the current PK (ContractID) as this will be consistent across all tables but I am worried about performance. The question is whether a string can be used as a primary key in a Data Mart.
Thanks