Múltiplas fontes de dados na interface - "SQL" do lado do cliente

Por vezes, na interface das nossas aplicações VLSI , torna - se  necessário "agrupar" algumas das entradas  de uma determinada lista (por exemplo, mensagens de serviço no chat, contactos e chamadas telefónicas).





É bom se todos esses registros vierem de uma fonte, mas se eles vierem  de serviços diferentes e com a navegação por cursor  , o algoritmo de implementação se tornará muito não trivial.





Intencionalmente, não apresentarei a implementação "no código" aqui, mas descreverei uma abordagem exclusivamente algorítmica para a solução, de modo que, se necessário, você mesmo pode escalá-la para suas tarefas. Então...





Formulação do problema

Temos dois serviços. Poderia ser mais, mas seguindo a imagem anterior, vamos, por uma questão de clareza, ser os  serviços de Chamadas e Contatos .





Obrigado aos colegas do CRM por uma tarefa interessante. Nesse ínterim, não há necessidade de se preocupar com isso. ”





    ,  ""   .





  ""  - , - , .





Agrupando várias chamadas em uma entrada

, , , , :





  • PostgreSQL Antipatterns: JOIN





  • PostgreSQL Antipatterns:





  • SQL HowTo: while- , « »





#1: " "

,   -, - ,   . -   .





" " , . "",   ?





#2: " "

, ?..   (20 ) ,     "" , - .





, ( ) "" - ?   , .





,    ( ), .   , "".





#1: " "

, ,    - - ( 20), - .





   , - (merge ordered) (limit) "" .





, , "" 15 20 . 5 , " " -   .





#3: "One Ring to rule them all"

? ,    - , .     - , .





, " - , "   - , .





#4: " server-side"

-   , . , ,   .





 stateless server-side , , -  . , :





  •   ---





  •     , ""





  •   --





#2: " client-side"

, -,   ?.. .





 , " "   (, , localStorage), .





- :





  • 20 20





  • "" 5





  • 5 "" + 15





  • 5





  • 20 - ? ! ( 20, "" )





  • " ", 25 20





Edge Cases

, -  "" " ", "" .





,   , : ", , , , !"








All Articles