Plusieurs sources de données dans l'interface - "SQL" côté client

Parfois, dans l'interface de nos applications VLSI , il devient  nécessaire de «grouper» certaines des entrées  dans une certaine liste (par exemple, les messages de service dans le chat, les contacts et les appels téléphoniques).





C'est bien si tous ces enregistrements proviennent d'une seule source, mais s'ils proviennent  de différents services, et avec la navigation par curseur  , l'algorithme d'implémentation devient très non trivial.





Je ne donnerai volontairement pas l'implémentation "en code" ici, mais je décrirai une approche exclusivement algorithmique de la solution, afin que, si nécessaire, vous puissiez l'adapter vous-même à vos tâches. Donc...





Formulation du problème

Nous avons deux services. Cela pourrait être plus, mais en suivant l'image précédente, laissez, par souci de clarté, être des  services d'appels et de contacts .





Merci aux collègues du CRM pour une tâche intéressante. En attendant, il n'y a pas lieu de s'inquiéter à ce sujet. »





    ,  ""   .





  ""  - , - , .





Regrouper plusieurs appels en une seule entrée

, , , , :





  • 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