@WolandWspanialy zakładam, że mamy jakiś driver abstrakcji w stylu JDBC/ODBC i nie klepiemy binarnej komunikacji z bazą. Nie mamy tylko frameworka, który zamienia wywołań metod na zapytania sqlowe on-the-fly. To nie jest na tyle duży narzut, żeby się nim przejmować.
W korpo praktyce, często zaawansowane rzeczy opakowywało się w procedurę bazodanową, a do zrobienia dawało ludziom, którzy tą bazę utrzymują. Oni sobie klepią, żeby było im wydajnie, a ty masz elegancki interfejs. Oczywiście z podejściem scrumowym średnio się to spina, ale to już problem menadżerów.
@WolandWspanialy
@Vuaaas
Fajny przykład z kariery to pewna firma kurierska, która miała inny silnik bazodanowy w oddziałach, a inny w centrali. Interoperacyjność zapewniało się tak, że struktura widoków i nagłówki procedur były spójne. Inny był tylko środek funkcji, trzeba było napisać dla obu silników oddzielnie. Dodatkowo był tam przedpotopowy postgresql i musiałem się zastanawiać, jak pisać niektóre rzeczy bez window functions.
@Vuaaas tak naprawdę czystych relacyjnych to już nie ma. Spokojnie można sobie trzymać w środku tabel dokumenty jsonowe i traktować je jak nosql. Spatial? Też nie ma problemu. Za to upieranie się, że SQL to zło i najlepiej go nie widzieć, często kończy się tym, że potem patrzę w korpo APMie, jak ktoś robi selecty w pętli.