Будет ли у вас возможность побольше поговорить с людьми, использующими веб-сервис? Лучший ответ будет зависеть от ряда факторов, в том числе от того, как они его используют.
Самый простой вариант - создать один метод веб-службы GetPeople (), который выполняет запрос, соединяющий таблицу Person с остальными таблицами и возвращающий все данные в одной плоской таблице. Если клиент просто собирается отобразить всю эту информацию в одном списке / таблице, это будет наилучшим вариантом.
Если, с другой стороны, клиент собирается сгенерировать список людей и затем щелкнуть их, чтобы получить более подробную информацию на отдельной странице подробностей, ему может понадобиться метод GetPeople (), который просто возвращает имена / ids и GetPeopleInfo (), который возвращает детали. Если это не вызовет проблем с производительностью в вашей системе, это должно быть относительно просто.
Я бы, вероятно, построил и то и другое - создал бы метод GetPeople (), который возвращает все данные (до тех пор, пока данных не так много, что транспортировка становится и выдает), и метод GetPersonInfo (), который позволяет им откатываться подробности о конкретном человеке. Это обеспечивает вашему клиенту максимальную гибкость, не требуя от вас дополнительных усилий.