the addressbook hooks already allow any number of fields - the data is passed as a hash array.
Its available with SQL (only on the SVN version of RoundCube) but no documentation exist on right now that I know of.