Modelagem de hierarquias em sistema Grails
08/10/2011 19:19
Olá, pessoal!
Estou com uma dúvida em como vou tratar a situação abaixo! Gostaria de saber qual seria a melhor solução (ou a mais elegante :-) ).
É o seguinte:
Meu sistema tem uma entidade "Usuario". No CRUD desse usuário existe um atributo de nome "cargo". Os cargos possíveis para esse usuário são 3: "gerente regional", "gerente de divisão", "gerente de setor". Eu criei, portanto, uma entidade para cada um desses atributos, ou seja: Uma entidade "Setor" (que pertence a uma "Divisão", ex: setor 134 - divisão Rio de Janeiro), uma entidade "Divisão" (que pertence a uma "Região", ex: divisão Rio de Janeiro - região Sudeste) e uma entidade Região.
De acordo com o requisito que foi levantado junto ao cliente, com base na escolha do atributo cargo no cadastro de Usuario, ele quer associar o mesmo à um setor, à uma divisão (caso ele seja um "gerente de divisão") ou à uma região (caso ele seja um "gerente regional").
Como solução, apresentei que o melhor a fazer é ter essa associação diretamente nas entidades, por exemplo: O cara acabou de cadastrar um novo Usuário. Se esse usuário é um gerente de setor, em seguida ele deve ir no CRUD de "Setor" e associar o usuário que ele acabou de criar ao setor que ele deseja. Mas como as pessoas que vão fazer manutenção desse sistema não querem fazer esse processo em 2 telas diferentes, ele solicitou se não tem uma forma de fazê-lo dinâmicamente, direto no CRUD do Usuario. A minha dúvida seria como posso modelar esse processo da melhor forma possível? Vocês já passaram por situação semelhante?
Muito obrigado!
Tags:
CRUD, modelagem, entidade, relacionamento, GORM