Foreign keys can reduce redundancy.
  
  Before: entity attribute value  
          ------ --------- -----  
           1     name      Fred   
           1     age       51     
           1     sign      Scorpio
           2     name      Mary
           2     age       43
           2     sign      Leo
           3     name      George
           3     sign      Scorpio
   
  After:        base_table       | attr_lookup  | val_lookup
          ---------------------- | ------------ | ---------
          entity attr_id  val_id | id attribute | id value
          ------ -------- -----  | -- --------- | -- ------
           1     1        11     | 1  name      | 11  Fred
           2     1        12     | 2  age       | 12  Mary
           3     1        13     | 3  sign      | 13  George
           1     2        14     |              | 14  51                 
           2     2        15     |              | 15  52
           3     2        16     |              | 16  53
           1     3        17     |              | 17  Scorpio
           2     3        17     |              |
  
  * Useful pivot table will hide the joins.