Devpost#15 Zapytania SQL z wykorzystaniem JOIN. Problemy z gitem.

Szczerze mówiąc, nie myślałem, że task z implementacją listy mieszkań zajmie mi tyle czasu. Żeby było jasne, cały widok nie jest jeszcze finalnie skończony, ale już jest na ukończeniu. Dzisiaj opiszę co było powodem tego, że tyle czasu poświęciłem na ten feature.

SQL JOIN

Projekt, który realizuję jest moim pierwszym większym przedsięwzięciem. Do tej pory, jeśli używałem SQL to do prostych zapytań, ewentualnie kilka razy wykonałem złożonego SELECT’a. Aktualnie moja baza składa się z około piętnastu tabel, gdzie praktycznie w każdej znajdują się jakieś klucze obce. W końcu to relacyjna baza danych w mySQL. 

Byt, jakim jest mieszkanie zbudowany jest z kilku tabel. Sprawa prosta, pobieram potrzebne informacje i wyświetlam je w widoku jako jeden rekord w tabeli dla danego mieszkania. Kombinowałem na różne sposoby, pobierałem wszystkie tablice z interesującymi mnie danymi, następnie próbowałem je w jakiś sposób merge’ować. Nie, to nie działało dobrze, szczególnie biorąc pod uwagę fakt, że zwracane tablice były różne. To jest ten moment, kiedy uświadamiasz sobie, że nie wiesz, czego nie wiesz. 

Jak zwykle, ze złotą radą przyszedł nieoceniony kumpel Karol, który poradził poczytać o JOIN’ach w SQL. To było to! Nie od razu udało mi się sformułować właściwe zapytanie, ale po blisko godzinie, czytania o SQL’u napisałem działający kod. Dzięki SQL JOIN możemy pobierać dane z różnych tabel, które otrzymujemy jako jeden response. To mi w 100% rozwiązało problem, późniejszego wyświetlania danych. 

PROBLEMY Z GITEM

W trakcie pracy pobawiłem się trochę gałęziami w gicie. Zrobiłem kilka commitów, niby wszystko w porządku. Zrobiłem już sporo rzeczy, więc przez końcem pracy chciałem zrobić pusha no i surprise! Git konflikt. Pierwszy raz miałem z tym styczność, wcześniej jedynie w pracy programista coś o tym wspominał, poza tym żadnej styczności. No i zaczęło się, mergowanie, revertowanie commitów, dropy i checkout’y. 

Tak przyznaję, jeszcze mistrzem obsługi gita nie jestem. Finalnie, tak namieszałem, że po prostu wkleiłem wszystkie pliki jeszcze raz (Git, gitem, ale przy moich próbach dobrze mieć fizyczny backup na dysku, który możesz wkleić w razie pożaru). Ta cała sytuacja dała mi mocno do zrozumienia, że muszę chyba przysiąść do kursu gita, który kupiłem u Maćka Aniserowicza.

NAMESPACE I COMPOSER

O tym już krótko. Długo walczyłem z używanie namespace’ów, ciągle coś mi się krzaczyło. Finalnie okazało się, że brakło mi wykonania komendy w composerze, która aktualizuje w autoloadzie przestrzenie nazw. To znaczy, że jak do pliku composer.json dodacie nowy path do klasy lub folderu, należy wykonać composer dump-autoload -o, który zaktualizuję listę nazw. Trzeba jednak pamiętać, aby wykonać to polecenie po stworzeniu namespace’a dla danej klasy, aniżeli tylko po dodaniu jej do pliku composer.json.

CO TERAZ?

W najbliższych dniach będę pracował nad:

  • Usuwaniem mieszkań (rekordów) z bazy danych.
  • Opcją edycji danego mieszkania i czuję że tu będzie niezła jazda z update’owaniem paru tabel, ale chyba właśnie jak to piszę wymyśliłem rozwiązanie, choć to co wymyśliłem to trochę jednak chyba januszera 😉
  • Toastr alerty po dodaniu nowego mieszkania. 
  • Refactor – tutaj już mi się płakać chce. Muszę ogarnąć jak implementować namespace do klas modelu, które wykorzystują metodę z klasy nadrzędnej do łączenia się z bazą danych.
  • Tłumaczenia do aktualnie dodanych treści.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *