Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Aplikacja bazodanowa w OOP
Forum PHP.pl > Forum > Przedszkole
szogoon
Witam wszystkich - jest to mój pierwszy post na tym forum smile.gif

Nie programowałem już kilka lat, a teraz musiałbym napisać obiektowo aplikację bazodanową w PHP (jako baza MySQL).

Nigdy nie pisałem stricte obiektowo, dlatego mam kilka wątpliwości/pytań.

Aplikacja miałaby wspomagać inwentaryzację sprzętu komputerowego i oprogramowania.
Widziałbym to tak, że mam tabele: lokalizacje, użytkownicy, komputery, drukarki, monitory, licencje.

Czy istnieje jakiś podobny przykład ? Jeżeli chodzi o interfejs/logikę - nie ustaliłem jeszcze jak to ma wyglądać.

Szukam wpierw punktu zaczepienia.

Bardziej techniczne pytanie: mam już bazę komputerów - w programie tworzę dla każdego komputera obiekt klasy komputer ? czy tworzę jeden obiekt (ewentualnie więcej, według potrzeb) i operuję w nim jakimś id i wyciągam na bieżąco dane ?

Z góry dziękuję za jakąkolwiek pomoc smile.gif
jaslanin
Wszystko zależy od tego jaki to projekt, jakie założenia biznesowe ma spełniać. Jak się pewnie domyślasz inwentaryzację można mieć bardziej lub mniej rozbudowaną. Tak więc wydaje mi się że najpierw trzeba zrobić listę rzeczy które takie coś ma ułatwiać. A dopiero potem brać się za obmyślanie jak to ma działać. Bo może się tak okazać iż sama obsługa twojej aplikacji (dodawanie do aplikacji inwentaryzującej, jej obsługa) będą bardziej czasochłonne niż zyski z jej działania.

Jeżeli się okaże że zyski z aplikacji są duże trzeba "po prostu" do tych funkcji ułatwiających dorobić wszystko by mogły działać tzn. dostarczyć dane, przetworzyć dane itd.

"Bardziej techniczne pytanie: mam już bazę komputerów - w programie tworzę dla każdego komputera obiekt klasy komputer ? czy tworzę jeden obiekt (ewentualnie więcej, według potrzeb) i operuję w nim jakimś id i wyciągam na bieżąco dane ?"

może nie dla każdego komputera, tylko dla tych komputerów na których aktualnie operujesz np. masz wydrukować listę komputerów o jakiś tam warunkach, uruchamiasz model odpowiedzialny za pobranie z bazy komputerów rekordów spełniający jakiś warunek, model zwraca Ci tablicę z tymi komputerami, przekazujesz tę tablice obiektom komputer (tworzysz te obiekty i przekazujesz im dane). Tablicę tych obiektów z kolei przekazujesz do obiektu drukującego.
szogoon
Na tą chwilę chciałbym taką funkcjonalność:

komputery/monitory/drukarki byłyby przypisane do konkretnych lokalizacji/użytkowników
licencje byłyby przypisane do komputerów

chciałbym mieć widok całej firmy, a w niej poszczególne lokalizacje
otwierając daną lokalizację widzę sprzęt

drugi widok taki, że w firmie mam użytkowników...

podczas przemieszczania sprzętu generowany byłby protokół przekazania

dany komputer będzie miał od groma pól z danymi typu jaki procesor, ile pamięci itp

aplikacja ma być w miarę prosta smile.gif
lobopol
To wszystko sprowadza się do dobrego rozplanowania bazy i zapytań
sprzęt:
-id
-typ_sprzetu
komputery:
-id
-id_sprzetu
-reszta pól opisujących
drukarki:
-id
-id_sprzetu
-reszta pól opisujących
monitory:
-id
-id_sprzetu
-reszta pól opisujących

użytkownik:
-id
-reszta pól opisujących

licencja:
-id
-id_kompa
sprzet_uzytkownika:
-id
-id_usera
-id_sprzetu

jeżeli sprzęt ma różne lokalizacje i te lokalizacje się powtarzają to:
lokalizacja
-id
-opis

lokalizacja_sprzetu:
-id
-id_sprzetu

dodatkowo:
zgloszenia
-id
-id_usera
-opis zgloszenia
-status zgloszenia

zgloszony_sprzet:
-id
-id_zgloszenia
-id_sprzetu
-status_sprzetu

szogoon
ok, to jest dla mnie oczywiste...

teraz kwestia pobierania z bazy...

w danej klasie definiuję metody które pobierają z bazy ? czy robię to w jakiś inny sposób ?
czy jedna klasa do wyciągania danych z bazy i odwoływanie się do tej klasy ?
lobopol
Najlepiej jedna klasa do całej manipulacji na bazie danych (dodawanie, edycja itp.), inna do wyświetlania tych danych itd.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.