Usuário com melhor resposta
Sugestão sobre modelagem

Pergunta
-
Estou modelando o banco de dados para um sistema escolar, que ainda está bem no início e gostaria da opnião de algum profissional mais experiente sobre como estou fazendo os relacionamentos, se está correndo tudo certo ou como posso melhorá-lo ainda mais.
Segue a imagem do modelo.
Respostas
-
Ola Leonardo, bom dia,
Diferente do que você falou eu não sou tão experiente assim rsrsrs, mas ja consigo lhe dar uma ajuda:
- Tabela pessoa não deve ter referencia com o estado, ja que você ja está fazendo o relacionamento com a cidade que já possui o relacionamento. Do modeo que está você pode gerar uma inconsistência de dados, ou seja a pessoa mora em São Paulo - SP e está referenciando o estado de Alagoas.
- Estado civil seria melhor em outra tabela, com a chave primária do tipo TinyInt (bem menor que o inteiro "int")
- Recomendo a criação de uma tabela de endereços, assim uma pessoa pode ter muitos endereços e ja ajuda na organização dos dados. E na tabela enderços você coloca tudo que precisa, bairro, cep, cidade... etc
- Criar uma tabela para telefones, ou referenciando a um endereço da pessoa ou na própria pessoa. Assim garantindo uma economia de espaço utilizado pelo banco e deixando o numero de telefones dinâmicos.
Bom, foi apenas uma análise superficial, mas já da para ter como base para melhorar as outras tabelas
Abraços,
Desenvolvedor com ênfase em qualidade de código e performance. MCP - MCTS - Partner
- Marcado como Resposta José Leonardo Nascimento Garcia sexta-feira, 15 de junho de 2012 15:21
Todas as Respostas
-
Ola Leonardo, bom dia,
Diferente do que você falou eu não sou tão experiente assim rsrsrs, mas ja consigo lhe dar uma ajuda:
- Tabela pessoa não deve ter referencia com o estado, ja que você ja está fazendo o relacionamento com a cidade que já possui o relacionamento. Do modeo que está você pode gerar uma inconsistência de dados, ou seja a pessoa mora em São Paulo - SP e está referenciando o estado de Alagoas.
- Estado civil seria melhor em outra tabela, com a chave primária do tipo TinyInt (bem menor que o inteiro "int")
- Recomendo a criação de uma tabela de endereços, assim uma pessoa pode ter muitos endereços e ja ajuda na organização dos dados. E na tabela enderços você coloca tudo que precisa, bairro, cep, cidade... etc
- Criar uma tabela para telefones, ou referenciando a um endereço da pessoa ou na própria pessoa. Assim garantindo uma economia de espaço utilizado pelo banco e deixando o numero de telefones dinâmicos.
Bom, foi apenas uma análise superficial, mas já da para ter como base para melhorar as outras tabelas
Abraços,
Desenvolvedor com ênfase em qualidade de código e performance. MCP - MCTS - Partner
- Marcado como Resposta José Leonardo Nascimento Garcia sexta-feira, 15 de junho de 2012 15:21
-