title: Using a source surrogate key in a Dimension Table
body: <p>Fairly new to data modelling and have the scenario below and am unsure on how to proceed with the design</p>
  
  <p>I have a source table with a combination of natural keys and a surrogate key called MED_key, a simple example below:</p>
  
  <pre><code>--Table_Medications
  
  MED_Key | Medication Name | Medication Desc | Class Lvl One | Class Lvl Two
  -----------------------------------------------------------------------------
  759456123 | Med_ABC1 | Medication for ABC 1 - Long Descriptive Text Here | Calcium | Calcium Type A
  781456113 | Med_ABC1 | Medication for ABC 1 - Long Descriptive Text Here | Calcium | Calcium Type B
  689476143 | Med_ABC1 | Medication for ABC 1 - Long Descriptive Text Here| Calcium Extra | Calcium Type C
  709456129 | Med_ABC1 | Medication for ABC 1 - Long Descriptive Text Here| Calcium Extra | Calcium Type D
  989476125 | Med_ABC2 | Medication for ABC 2 - Long Descriptive Text Here| Vit A | Vit A
  009456199 | Med_ABC3 | Medication for ABC 3 - Long Descriptive Text Here| Aspirin | Aspirin
  
  
  --Table_Medication_Prescribed
  
  Trx No | Qty | Amt | MED_Key
  -----------------------------
  1 | 5 | 23.45 | 781456113 
  2 | 3 | 5.10 | 989476125 
  3 | 9 | 87.12 | 759456123 
  </code></pre>
  
  <p>Table_Medication_Prescribed will be the FACT table.</p>
  
  <p>Table_Medications will be the DIM table. When populating the FACT table with the Dimension Key, I feel that I might hit a slow processing time when I do a join using four VARCHAR fields (Name, Description Class Lvl 1/2). I am unsure about using the MED_Key as a "natural key" inside the DIM table, is there any rules about not doing this? 
  Can anyone help with a best approach to this?</p>