As I understand from Evans book, aggregate root are entities that are uniquely identifiable in a domain.
Now, I am modelling an aggregate root which can be uniquely identified by a string that is composed of three of it's attributes - "ProjectCode-Date-CollectionId".
Can I use this string as an identity key for my aggregate root or should I be using surrogate keys?
If I use surrogate keys, then every time a new entry is to be added to the database, I would have to query the table to see if a combination of these three attributes already exist. Is this OK?