Beberapa sumber data di antarmuka - "SQL" sisi klien

Kadang-kadang, dalam antarmuka aplikasi VLSI kami , menjadi  perlu untuk "mengelompokkan" beberapa entri  dalam daftar tertentu (misalnya, pesan layanan dalam obrolan, kontak, dan panggilan telepon).





Ada baiknya jika semua catatan ini berasal dari satu sumber, tetapi jika berasal  dari layanan yang berbeda, dan dengan navigasi kursor  , algoritme penerapan menjadi sangat tidak sepele.





Saya sengaja tidak akan memberikan implementasi "dalam kode" di sini, tetapi saya akan menjelaskan pendekatan algoritmik eksklusif untuk solusi tersebut, sehingga, jika perlu, Anda dapat menskalakannya sendiri untuk tugas Anda. Begitu...





Rumusan masalah

Kami memiliki dua layanan. Bisa lebih, tetapi mengikuti gambar sebelumnya, biarlah, demi kejelasan, jadilah layanan  Panggilan dan Kontak .





Terima kasih kepada kolega dari CRM untuk tugas yang menarik. Sementara itu, tidak perlu khawatir. "





    ,  ""   .





  ""  - , - , .





Mengelompokkan beberapa panggilan menjadi satu entri

, , , , :





  • 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