Tak więc staram się przyjmować dobre metody programowania obiektowego z PHP. Większość (czytaj wszystkie) moich projektów dotyczy bazy danych MySQL. Mój bezpośredni problem dotyczy modelu użytkowników, który muszę opracować.Dziedziczenie PHP i MySQL
Mój obecny projekt ma agentów i potencjalnych klientów. Zarówno agenci, jak i potencjalni klienci to użytkownicy o dużej liczbie tych samych informacji. Tak więc, oczywiście, chcę, aby agenci klasowi i liderzy klasy rozszerzyli użytkowników tej samej klasy. Teraz moje pytanie brzmi następująco:
Jak najlepiej obsłużyć SQL do ładowania tych obiektów? Nie chcę wykonywać wielu instrukcji SQL podczas tworzenia instancji agenta lub potencjalnego klienta. Jednak logika mówi mi, że kiedy konstruktor Użytkownicy jest uruchamiany, powinien wykonać instrukcję SQL, aby załadować wspólne informacje między agentami i namiarami (nazwa użytkownika, hasło, adres e-mail, dane kontaktowe itp.). Logic mówi mi również, że kiedy uruchamiany jest konstruktor Agentów lub Leadów, chcę wykonać SQL, aby załadować dane unikalne dla klasy Agenci lub Leads .... Ale, znowu, logika również mówi mi, że to zły pomysł na wykonanie 2 Instrukcje SQL za każdym razem, gdy potrzebuję agenta lub potencjalnego klienta (ponieważ może być ich tysiące).
Próbowałem szukać przykładów tego, jak to się zwykle robi bez powodzenia ... Być może szukam czegoś niewłaściwego?
Bardzo podoba mi się ten pomysł, tak myślę. Ale najbardziej nęka mnie to, gdzie wykonać SQL, aby załadować wszystkie dane ... Nie mogę umieścić go w klasie User, ponieważ w zależności od typu potrzebuję innego SQL. Nie chcę umieszczać tego wszystkiego w klasie Agent i Lead, ponieważ znaczna część kodu byłaby taka sama i chcę uniknąć kopiowania i wklejania ... Idealnie, chciałbym, aby klasa User mogła załadować informacje wspólne i klasy Agent/Lead, aby załadować unikalne informacje ...... ale potem wykonuję 2 instrukcje SQL za każdym razem, gdy uruchamiam agenta lub potencjalnego klienta, co jest niepożądane ..... – SpaDusA
Możesz to zrobić w 1 instrukcji SQL. Powiedz mi jednak, czego używasz do załadowania konkretnego użytkownika? Co przekazujesz? Identyfikator? Coś innego? – cletus
Mam 2 funkcje ładowania: loadAll i loadById. Każdy Ołów/Agent ma imię, nazwisko, nazwę użytkownika, hasło, 2 numery telefonów, adres e-mail. Prowadzący ma obszar zainteresowania i "jak o nas słyszałeś". Agent ma zasięg i języki, którymi się posługują. – SpaDusA