Estrutura de Dados

32 views
Skip to first unread message

Fred Farias

unread,
Dec 6, 2016, 11:52:07 AM12/6/16
to ce...@googlegroups.com
Pessoal,

Eu tenho uma estrutura de dados, originado do Banco de dados, similar a esta:

TaxaConta

A

B

C

Taxa

Conta

Valor

1

Ta

C1

1

2

Ta

C2

2

3

Tb

C1

3

4

Tb

C3

4

5

Tc

C2

5



Na minha view eu preciso apresentar esses dados nessa estrutura:

A

B

C

D

E

 

C1

C2

C3

Total

1

Ta

1

2

 

SOMA(B1:D1)

2

Tb

3

 

4

SOMA(B2:D2)

3

Tc

 

5

 

SOMA(B3:D3)

 

 

 

 

 

Total

Soma(B1:B3)

Soma(C1:C3)

Soma(D1:D3)

 



Importante, os valores NÃO são somente leitura, o usuário poderá alterá-los e salvá-los.

Eu pensei numa solução, criarei uma matriz taxaConta[x][y], onde x é a quantidade de Taxas e Y é quantidade de Contas e preencherei adequadamente. (Estou resumindo bastante)

Porém estou achando que a complexidade do algoritmo ficará alta. Vejo que iria percorrer a lista diversas vezes para montar e a adequar à estrutura.

Meu objetivo é discutir esse tipo de problema e de repente enxergar uma solução mais trivial e performática.

Não acho que tenha muita relevância, mas estou usando AngularJs, Java e Oracle.

Att,
Fred Farias

Reyson Barros

unread,
Dec 6, 2016, 12:35:08 PM12/6/16
to ce...@googlegroups.com

Fred se sua estrutura já é oriunda do Banco de Dados então porque não fazer esses cálculos diretamente no sql ou com variáveis de memória em java?


Cordialmente,

Reyson Barros
Simplório Compartilhador de Conhecimento


De: ce...@googlegroups.com <ce...@googlegroups.com> em nome de Fred Farias <fredm...@gmail.com>
Enviado: terça-feira, 6 de dezembro de 2016 13:52
Para: ce...@googlegroups.com
Assunto: [CEJUG] Estrutura de Dados
 
--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+un...@googlegroups.com.
---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+un...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.

Marcos Oliveira

unread,
Dec 6, 2016, 12:55:13 PM12/6/16
to ce...@googlegroups.com
Olá Fred.

Até o momento, entendo que, tanto a view quanto o SGBD deverão "dividir o custo" .

No lado do Oracle você poderá construir uma view baseada em pivoteamento ( PIVOT - http://stackoverflow.com/questions/40970664/pivot-unpivot-in-oracle-sql, no último exemplo da página ) para exibição na sua view da aplicação.
No lado da aplicação, você poderá fazer o cadastro de forma "tabular" mesmo. Por exemplo, se for sua intenção que o usuário edite uma "célula" na exibição de dados, tal célula poderia ser um link para uma janela de edição. Após confirmar a edição do registro, você poderia fazer um "refresh" da visão para o usuário usando a 'mágica" do ajax.

Espero que haja alguma idéia aproveitável aqui.

Marcos Oliveira


Simplório Compartilhador de Conhecimento

-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+unsubscribe@googlegroups.com.

---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.

--
-- Você está inscrito na lista de discussão técnica do CEJUG. Para sair da lista de discussão, envie um email para cejug+unsubscribe@googlegroups.com.

---
Você recebeu essa mensagem porque está inscrito no grupo "CEJUG" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para cejug+unsubscribe@googlegroups.com.

Para postar nesse grupo, envie um e-mail para ce...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/cejug.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Marcos Oliveira
marvin.d...@gmail.com

"Vida longa e próspera!" Mr.Spock ( Leonard Nimoy )
 
Reply all
Reply to author
Forward
0 new messages