I am currently developing a data model. This model contains an entity "Asset"
, which has many numerical attributes, volume
, quantity
, price
, etc...
I also have string attributes that are part of the Asset
table. Say one of those is Asset Type
, this can be either a currency forward
, stock
, fund
, index
, etc... This is a good representation of the general cardinality of these string attributes, they have at most 10-15 different entries. The cardinality for the Asset
table though, is in the tens of thousands.
Should I create a separate table for my Asset Type
attribute and reference it using a foreign key in my Asset
table, or is it simpler to leave the Asset
table un-normalised and store these attributes directly, as strings, in the Asset
table?