Soft keys are foreign key relationships between tables that only exist within Curiosity’s Enterprise Test Data. Adding a soft primary key will not be enforced on the underlying DBMS but they simply allow you to define and document table relationships at the catalog level, independently of the database schema.
Viewing & Editing Relationships
Navigate to Data Dictionary
Select the Definition Structure tab and choose your definition
Each table displays relationship tags indicating Parent and Child associations
Click on a table to open the Table Details pane
From here you can add Parent or Child soft foreign keys
Adding a Soft Foreign Key
From the Table Details pane:
Click the green Child or Parent button next to the relevant table, or use the buttons in the Foreign Keys section of the Table Details pane
Give the relationship a name, select the related table, and use Add Column Reference to map the local and referenced columns
Click OK
Adding soft foreign keys is particularly valuable here, even where metadata harvesting identifies relationships automatically, explicitly defining them reinforces data lineage and makes relationships easier to validate and understand across your definition.
Marking a Column as a Soft Primary Key
1. Navigate to Data Dictionary
2. Select your Definition and open your Table from the dropdown
3. Click the Edit button to the right of the column name you want to flag
4. Expand the Advanced section
5. Toggle "Is Soft PK?" to enable it
As with soft foreign keys, marking a column as a soft primary key helps document the intended structure of your data - useful for validation activities and for anyone navigating relationships within the platform.
Deleting a Soft Key
1. Navigate to Data Dictionary → Definition Structure and select your definition
2. In the Content section, select the table where the soft key exists
3. In the Table Details pane, the Soft Key column indicates:
o ✅ Tick - soft key relationship
o ❌ Cross - hard (DBMS-level) key
4. Click the red X to remove the relationship
Note: Hard foreign keys can also be deleted this way - this only removes them from Curiosity, not from the database itself.