Person ( ID, Name, Surname )
Group ( ID, Name )
PersonInGroup ( ID, IDPerson, IDGroup )
Wtedy tylko kwestia HTML/CSS/JS jak to wyświetlisz.
Jeżeli to opierało by się o to, że wyświetlasz listy danej osoby... to możesz podpiąć dane grupy pod osobę:
PersonsGroup ( ID, IDPerson, IDGroup )
ew. zrobić to w jedno wielkie drzewo i dać userowi grupę domyślną "lista kontaktów" i tam dać możliwość tworzenia grup:
Person ( ID, IDGroup [domyślna grupa kontaktów], Name, Surname )
Group ( ID, IDGroup [rodzic, 0 - korzeń, lista domyślna], Name )
PersonInGroup ( ID, IDPerson, IDGroup )
Jeżeli rozpiszesz swoje założenia to będzie można Ci bardziej doradzić.