Mehrere Datenquellen in der Schnittstelle - clientseitiges "SQL"

In der Benutzeroberfläche unserer VLSI-Anwendungen müssen  manchmal einige Einträge  in einer bestimmten Liste "gruppiert" werden (z. B. Servicemeldungen im Chat, Kontakte und Telefonanrufe).





Es ist gut, wenn alle diese Datensätze aus einer Quelle stammen, aber wenn sie von verschiedenen Diensten stammen  und mit der Cursornavigation  der Implementierungsalgorithmus sehr nicht trivial wird.





Ich werde die Implementierung hier absichtlich nicht "im Code" angeben, sondern einen ausschließlich algorithmischen Ansatz für die Lösung beschreiben, damit Sie sie bei Bedarf selbst auf Ihre Aufgaben skalieren können. So...





Formulierung des Problems

Wir haben zwei Dienste. Es könnte mehr sein, aber wenn Sie dem vorherigen Bild folgen, lassen Sie uns  der Klarheit halber Anrufe- und Kontaktdienste sein .





Vielen Dank an die Kollegen von CRM für eine interessante Aufgabe. In der Zwischenzeit besteht kein Grund zur Sorge. “





    ,  ""   .





  ""  - , - , .





Gruppieren mehrerer Anrufe in einem Eintrag

, , , , :





  • 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