Como remover redundância de dados

Olá pessoal, estou com umas dúvidas ao modelar meus dados se alguem puder me dar uma dica, vamos lá.

estou modelando um cadastro de alunos e professores onde tenho o seguinte requisito:
Professor de um curso pode também ser aluno de outro curso, então estou no seguinte dilema:
professor tem alguns dados que alunos não tem então naturalmente criei tabelas separadas para eles, fica redundante algumas informações nas duas tabelas porém como vão ter poucos professores que também são alunos não vi problema em deixar essa redundancia nas duas tabelas.
A dúvida maior é na questão do endereço pois, o professor sendo um aluno o enderenço é mesmo, no caso se eu criar uma tabela endereço_professor e uma endereço_aluno vai estar duplicada a mesma informação nas duas, mas se eu criar uma unica tabela “endereço” para colocar tanto endereços de alunos e professores ai ficaria uma unica informação e duas chaves estrangeiras uma para a tabela alunos e outra para a tabela professores.

qual seria a modelagem mais correta,
1ª uma única tabela de endereço com chave para as outras duas
2ª separar a tabela de endereço em duas, cada uma com sua chave

a primeira opção tem um problema em caso de um professor não ser aluno ficaria uma chave estrangeira sem atribuição de valores e no meu modelo é obrigatório ter um endereço vinculado tanto para o professor como para o aluno

alguem poderia me dar uma dica com relação a isso?
agradeço a atenção de vocês.

Não entendi seu problema. Você quer colocar na tabela de endereço as chaves estrangeiras de aluno e professor? Por que não inverter? Coloque nas tabelas de aluno e/ou professor chaves que referenciem a tabela de endereço. Algo como (bem simplificado):

Endereço( id, rua, bairro...)

Aluno( id, nome, id_endereco);

Professor (id, nome, id_endereco);

Dessa forma, o endereço pode ser de qualquer um, ou até de mais de um.

Abraço.

Eu faria + ou - assim:

Pessoa {id, cpf, nome, endereço} // informações comuns
Professor {id_pessoa, curso}
Aluno {id_pessoa, curso, matricula}
1 curtida

Eu concordo com o @diego12.
Além disso, associaria o endereço a pessoa e resolveria isso de uma vez.

Eu seguiria a proposta de modelagem de @diego12

MER:

Nossa agora que vocês falaram não tinha pensado no basico ai kkk. Valeu pessoal ajudaram muito, vou fazer a hierarquia de especialização, vai ficar show.