|  | Posted by Erland Sommarskog on 07/25/07 21:32 
Paul (paulwragg2323@hotmail.com) writes:> I have posted a question in the Database design and theory ng, but I
 > expect a lot of you will have suggestions to help me (and that ng
 > doesn't seem very active).
 >
 > The post is here:
 >
 >
 http://groups.google.co.uk/group/comp.databases.theory/browse_frm/thread/5db
 717bb37ca5b0f?hl=en
 >
 > Any help would be appreciated.
 
 Your intended design may or may not make sense. I recall that exactly in
 the case of telephone numbers we did that transformation in our system.
 
 The design you aim at is known as EAV, and many frown at it. But there are
 definitely cases where this design make sense.
 
 What is the problem with it? You've already discovered it: writing the
 queries. They are more difficult to write, and if you misspell and
 attribute code, there is no compiler to tell you.
 
 For the particular query you had problem with, this is the best way of
 writing it:
 
 SELECT per.id, per.dob,
 Home = MIN(CASE ph.Type WHEN 'Home' THEN ph.Value END),
 Mob  = MIN(CASE ph.Type WHEN 'Mob'  THEN ph.Value END),
 
 But if you find that you need to write a lot of those queries, you are
 probably going in the wrong direction.
 
 
 --
 Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
 
 Books Online for SQL Server 2005 at
 http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
 Books Online for SQL Server 2000 at
 http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
  Navigation: [Reply to this message] |