Simple PIM – Exemplo Nova Classe de Conexão – Parte 1
No post passado, falei sobre as modificações que foram feitas na minha Classe de Conexão para Múltiplos Bancos de Dados, descrevendo as novas propriedades e novos métodos.
Estas modificações foram feitas com a intenção de simplificar ainda mais a construção de aplicativos em .NET, principalmente Web Applications (que é o tipo de aplicação que faço com mais frequência). A versão anterior focava mais a parte de reaproveitamento de código para a execução das instruções SQL e conexão com Banco de dados proprieamente ditas.
O foco destas modificações é automatizar a atribuição das propriedades de uma classe na interface de usuário, além de melhorias na automação de construção de instruções SQL e afins.
Para demonstrar este novo “poder” da nova Classe de Conexão, construiremos um simples Personal Information Manager (PIM), mais conhecido como Agenda de Contatos, com interface Web e utilizando o banco de dados Firebird 2.0, e usaremos as rotinas da Classe de Conexão para fazer as operações necessárias.
Dividiremos a construção do Simple PIM nas seguintes postagens:
- Introdução e Modelagem da Base de Dados (este post)
- Estrutura da Aplicação e Construção da Biblioteca de Classes
- Construção (Design e Codificação) da Interface Web
- Conclusões
Esta aplicação não é nada se comparada a muitos downloads de PIM que temos Internet à fora, ela foi construída unicamente para fins didáticos, para demonstração dos novos métodos da nova Classe de Conexão, te dando uma base de como utilizá-la em seus projetos :-). Portanto, se acharem o design da interface “tosco” demais, não liguem… o importante aí é o código da aplicação e os conceitos que iremos utilizar ;-).
Após o break, vamos definir e analisar a estrutura de dados do Simple PIM.
Estrutura de Dados do Simple PIM
Nosso Personal Information Manager consistirá de um cadastro simples de dados pessoais, com múltiplos endereços e formas de contato. Para que isso seja possível, modelei a seguinte estrutura de tabelas:
Como você pode ver, são 4 tabelas:
- CONTATOS: Armazenas as informações básicas de cada contato;
- ENDERECOS: Armazena os endereços de cada contato;
- FORMA_CONTATO: Armazenas as formas de contato de cada pessoa (exemplos: telefone residencial, comercial, celular, msn, skype, etc)
- TP_FORMA_CONTATO: Cadastro básico, armazena os tipos de forma de contato a ser utilizado pela tabela FORMA_CONTATO (ex: telefone residencial, comercial, etc).
Os campos ID de cada tabela são do tipo auto-incremento, sendo que o auto-incremento é implementado no Firebird com o auxílio de um generator e um trigger Before Insert.
Então temos, para cada tabela, um generator e um trigger associados, como no script abaixo, que demonstra esta estrutura para uma tabela:
1: create generator GEN_CONTATO_ID;
2:
3: ---
4: ...
5: ---
6: CREATE TRIGGER AI_CONTATOS_ID FOR CONTATOS ACTIVE
7: BEFORE INSERT POSITION 0
8: AS
9: BEGIN
10: IF (NEW.ID IS NULL) THEN
11: NEW.ID = GEN_ID(GEN_CONTATO_ID, 1);
12: END
13: ^
Caso o programa seja portado para o SQL Server, implementamos os campos auto-incremento com o atributo IDENTITY, não sendo necessária a construção de uma trigger para esta função.
Com isso, fechamos a parte do Banco de Dados do Simple PIM!
Caso você já queira ir estudando o que vai vir pela frente, faça o download do projeto completo:
Projeto de Exemplo da Classe de Conexão – Simple PIM (263 kB)
Aguarde que no próximo post a brincadeira começa de verdade!
0 comentários:
Postar um comentário