minolone
4.03.2013, 21:38:07
Witam.
Mam problem z zaprojektowaniem bazy danych, nie wiem jak to dokładnie ogarnąć,
Z pracownikiem jego stanowiskiem i miastem nie mam najmniejszego problemu,
Baza:
#Pracownik
- id
- imie
- nazwosko
- miasto_id
- stanowisko_id
#Miasto
- id
- nazwa
#Stanowisko
- id
- nazwa
Pracownik jest połączony relacjami jeden do jednego z miastem i stanowiskiem.
Potrzebuje dodać do tego jeszcze czas, ma to być na zasadzie grafiku pracowników, tyle że bez czasu pracy itd.
Czas ma tutaj odgrywać tylko rolę jako data, i to też nie byłoby problemem tylko że muszę zrobić codzienne zapisywanie czy dany pracownik był w pracy, oraz jest możliwość przemieszczania się pracowników pomiędzy miastami i to też musi być uwzględnione w tak jakby archiwum. Myślałem nad tabelą:
#Data
- id
- data
oraz
#DataPracownik
- id
- data_id
- pracownik_id
- miasto_id
- stanowisko_id
i wyglądało by to tak:
id | data_id | pracownik_id | miasto_id | stanowisko_id
1 | 1 | 1 | 1 | 1
2 | 1 | 2 | 3 | 1
czyli musiałbym uruchomić zadanie cron i zapisywać codziennie każdego użytkownika, taka jest moja koncepcja, nie wiem czy dobrze to przedstawiłem,
Może ktoś ma jakiś dobry pomysł jak to można ogarnąć.
Dzięki i pozdrawiam
Ewentualnie czy za pomocą mysql można skopiować dane, chodzi mi o skopiowanie każdego pracownika z tabeli Pracownik do tabeli DataPracownik i dodać date i tak codziennie np o 1 w nocy czy tylko php odczyt i zapis?
mmmmmmm
4.03.2013, 22:28:30
Miasto pozostaw jako tekst. Ja w swojej bazie miejscowości mam prawie 120 tys. a co chwilę przybywa - naprawdę chce ci się to aktualizować? 90% z nich i tak nie wykorzystasz... Datę też pozostaw w formie daty (yyyy-mm-dd). W takiej, jak teraz prezentujesz i zajmuje więcej miejsca, i jest mniej czytelne...
A skoro chcesz to w cronie wpisywać, to znaczy, że zapisujesz codziennie każdego pracownika. Czy jest więc sens, skoro wiesz, że tak jest?
minolone
5.03.2013, 14:46:01
Witam.
Źle mnie zrozumiałeś lub może ja coś źle napisałem, ogólnie cały projekt pisze w Symfony2 z użyciem SonataAdminBundle, miasta mam w osobnej tabeli ponieważ jest możliwość wyboru miasta z listy rozwijanej i przypisanie pod danego pracownika, co do czasu to jest jeszcze tak ze w tabeli pracownicy mam date od i do, tutaj jest np wybierany czas na jeden tydzień, on może ulec zmianie ponieważ dany pracownik może zmienić miejsce swojej pracy, dlatego potrzebuje jakoś to zapisywać gdzie i w jakim dniu był dany pracownik, moje pytanie brzmi jak to najlepiej zrobić? Czy najlepiej jest zapisywać w osobniej tabeli id pracownika miasto i date? W obecnej chwili mam już wszystko zrobione tylko nie wiem jak najlepiej jest zapisywać użytkownika, do tzw archiwum. Musze mieć wgląd danego pracownika z każdego dnia i miejsca.
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.