Drigo,
Modelagem de dados ‘e dificil de discutir mas neste caso eu faria apenas 2 tabelas:
Usuario: id_Usuario (PK), Nome, Username, senha, bloqueio, data_inicio, data_fim, id_Contato(FK), bairro, complemento, numApartamento.
Contato:id_Contato (PK), bairro, complemento, numApartamento, email, telefone.
Se você conseguir criar uma table endereço e reusar os valores e não cadastrar um endereço por usuário pois como o numero não vai ser o mesmo então ficara um cadastro por user, caso reutilize faça separado, ficando quase a mesma estrutura que você citou mas sem numero que pode acrescentar na table Usuário.
Ficando:
* Usuario: id_Usuario (PK), Nome, Username, senha, bloqueio, data_inicio, data_fim, id_Contato(FK), id_Endereco (FK),numApartamento.
* Contato:id_Contato (PK), email, telefone.
* Endereco: id_Endereco (PK) , bairro, complemento.
Se eu entendi errado me corrija.
[]s