...
> Но в одном проекте Ivan является архитектором, а во втором проекте Ivan является тестировщиком.
Попробуйте использовать дополнительные поля назначений. Иван ведь может быть и в одном проекте одновременно и архитектором, и тестировщиком (по разным задачам).
> в одном проекте он получает зарплату $100, а в другом проекте он получает $300
М-да, чтобы стоимость ресурса зависела от проекта - это что-то очень специфическое... А он у Вас не забьет на первый проект, если за такой же час работы по второму проекту ему будут платить втрое больше?