Modelagem de dados, normalização e padrões.

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 325
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Bom dia.

Gostaria de compartilhar com vocês o seguinte estudo de caso aqui da empresa e que gerou uma série de "visões" diferentes.

Por isso gostaria de solicitar mais uma vez a ajuda de vocês quanto a interpretação do seguinte caso.

Tenho um processo de cadastramento que são divididos em fases sequenciais e cronológicas, e cada fase será realizada por um departamento da empresa que será executado por um funcionário deste departamento, gerando um log de acesso e alterações deste usuário.

Analisando o cenário descrito:

- Um ou mais funcionários pertencem (lotam) um único departamento;
- Um departamento contém um mais funcionários;

- Um departamento é responsável por uma ou mais fases do processo;
- Uma ou mais fases do processo pertencem a um ou mais departamentos;

- Várias fases do processo poderão ter apenas um status;
- Um status pertencerá a uma ou mais fases do processo;

Então temos:

Entidades:

- Departamento;
- Fases do Processo;
- Status da Fase;
- Usuario;
- Log;

Esta foi a minha visão sobre o caso:

* O agente que "starta" o processo é o usuário logo após as requisições dos clientes, portanto um ou mais usuários poderão cadastrar uma ou mais redes; Para realizar um relacionamento muitos-para-muitos utilizo um "Entidade Associativa" contendo a chave de ambas as tabelas que pretendo relacionar, pois não sei se estou certo, não é possível realizar o relacionamento n:n diretamente entre duas entidades, a partir deste relacionamento é gerado uma "Entidade Fraca" que será o log de usuário pois depende da relação da Tabela Usuário com a de Cadastro para que a mesma possa existir.

* Este usuário pertence a um departamento, então tenho o relacionamento direto de um-para-muitos;

* Este departamento ao qual o usuário logado estiver vinculado, está encubido de realizar uma ou mais fases do processo;

* E para controlar o status de cada fase do processo por departamento, criei uma entidade para controlar isso, relacionando cada fase do processo a um status, portanto cada fase do processo possuirá apenas um status e um status poderá ter várias fazes do processo, oras, se a fase do processo está vinculada ao departamento, que possui um ou mais funcionários, que efetuam operações de cadastro na rede, então é possível controlar as fases sequenciais pertencentes a cada processo, sem precisar "ligar" a tabela de cadastro diretamente a cada fase e tão pouco diretamente com a tabela de usuários.

Está foi minha visão de uma possível solução para este caso.

Por gentileza quem puder opinar, dar sugestões ou críticas, agradeço.

Att.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante