В БД много где используется иерархический подход хранения данных:
Где атрибут может иметь значение как выставленное непосредственно в объекте, так и унаследованное.
Для быстроты работы с такими структурами целесообразно иметь поля эффективных значений:
Рядом с фактическим значением поля responsible_id имеет смысл хранить эффективное значение responsible_id_effective
Также целесообразно перейти на PostgreSQL