Dla mnie SQL jest podstawową częścią (w wielu przypadkach większości) kodu logiki biznesowej. Jeśli spróbujesz oddzielić go od kodu, który działa na zwracanych danych, będziesz bardziej podatny na niezrównoważenie zrozumiałości i możliwości utrzymania kodu.
Gdy na to patrzę, odczytywanie danych, przetwarzanie danych, zapisywanie danych, wyszukiwanie danych ... to wszystko są podobne operacje i najlepiej trzymać je w tym samym miejscu.
Jeśli zaczniesz wyczuwać powielanie wysiłków za pomocą zapytań, być może potrzebujesz widoku bazy danych lub obiektu, który może obejmować ten aspekt dostępu do bazy danych.
Inną wskazówką jest posiadanie dobrej metody zapytania do bazy danych. W oprogramowaniu, które piszę (PostgreSQL, MySQL, SQL Server), zapewniłem, że większość moich zapytań może odbywać się jako pojedyncza instrukcja kodu.
GetValue(SQL, [transaction], [array_of_params])
GetRow(SQL, [transaction], [array_of_params])
GetRowList(SQL, [transaction], [array_of_params])
GetValueList(SQL, [transaction], [array_of_params])
Execute(SQL, [transaction], [array_of_params])
Są to (z grubsza) główne wywołania funkcji, które, jak zapewniam, są częścią mojego „obiektu połączenia”. To zależy od języka, co faktycznie wdrażasz, ale moim celem jest, aby było naprawdę, naprawdę proste i bezbolesne.
Podsumowując, traktuj SQL jako natywną część programowania, a nie abstrakty dla samej abstrakcji.