Więc opracowuję aplikację z ofertami pracy przy użyciu Laravela i chciałem poznać najbardziej wydajną metodę sprawdzania, czy użytkownik złożył podanie o pracę?

Pytam, ponieważ mój obecny pomysł (patrz poniżej) na zrobienie tego wydaje się nie być najlepszą metodą i chciałem sprawdzić z wami tutaj.

Moja metoda

Obejmuje utworzenie relacji many-to-many od użytkownika i zadania w tabeli job_users lub user_jobs, a następnie po załadowaniu określonego zadania, sprawdzeniu na serwerze odwołującym się do tabeli relacji, aby sprawdzić, czy już złożyłeś wniosek.

Czy to najskuteczniejszy sposób? Ponieważ wiąże się to z wywołaniem bazy danych za każdym razem, a jeśli użytkownik aplikował o wiele miejsc pracy, wydaje się to wysoce nieefektywne

-1
EfosaSO 1 grudzień 2018, 17:02

1 odpowiedź

Najlepsza odpowiedź

Masz rację, że opisane zapytanie może stać się nieefektywne. Istnieją różne strategie, których możesz użyć, aby rozwiązać ten problem. Po pierwsze, możesz przestrzegać ogólnej zasady, że „przedwczesna optymalizacja jest źródłem wszelkiego zła” i nie rozwiązywać jej, dopóki nie będzie miała zauważalnego negatywnego wpływu na produkcję. Po drugie, możesz mieć pole takie jak status lub has_posted_job w tabeli users, które jest aktualizowane przez aplikację, gdy użytkownik opublikuje ofertę pracy. Wadą tego jest dodatkowa złożoność aplikacji i przechowywanie dodatkowej kolumny, ale może to być tego warte. Wraca to jednak do „korzenia wszelkiego zła” – najlepiej byłoby najpierw uzyskać rzeczywiste, rzeczywiste wskaźniki dotyczące nieefektywności, aby poznać najlepszy sposób na jej optymalizację.

1
bradforbes 1 grudzień 2018, 17:15