Acho que a opção 2 é a melhor, geralmente é como faço pra evitar esse tipo de problema e funciona bem, achei mais tranquilo de manter e dar manutenção

Mas ai como eu realizo uma filtragem referente aos agendamentos de um profissional específico, sendo que em cada filtragem pode ocorrer de mais uma troca de nome e nao relacionamento?

Nos casos em que precisei fazer isso, não tive esse problema com a filtros. eu coloco na tabela order só alguns detalhes que podem ser alterados com o tempo, geralmente o nome do serviço/produto e o preço, pra que essa informação não se perca ou fique errada com o tempo conforme as atualizações aconteçam no sistema. além desses dados que podem mudar, coloca o id do profissional e do serviço. dessa forma se tiver alguma atualização no preço ou no nome de algum serviço/produto depois de uma compra já ter sido feita, o registro da compra não vai mudar, vai continuar com o mesmo preço e nome do serviço/produto, pros usuários comuns que vão entrar pra fazer o agendamento essa mudança não importa, ele só precisa ver os itens listados com os nomes atualizados. pra quem já comprou também não importa, ele só precisa ver o item da forma como comprou. pra quem gerencia, esses itens podem ser listados com nomes diferentes mas vão ter sempre o mesmo id do serviço e do profissional escolhidos
Realmente, como eu pude esquecer do id. Ajudou demais. Vlw