Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem relacja wiele do wielu czy to jest mozliwe?, tabela laczaca dane z 4 tabel czy to jest mozliwe
plcm
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 7.12.2010

Ostrzeżenie: (0%)
-----


Witam o to przyklad powiedzmy ze jestesmy na stronie jakiegos gabinetu lekarskiego i jestesmy tam zarejestrowani
na stronie mozna sie zapisac do lekarza do wyboru jest kilku lekarzy i przy kazdym z nich jest do wyboru dzien i godzina ktora nas interesuje
zeby nie komplikowac wszyscy z nich obsluguja w tych samych godzinach

mamy cztery tabele

1) user
- id_user
- imie_user
- nazwisko_user

2) lekarz
- id_lekarz
- imie_lekarz
- nazwisko_lekarz

3) godzina
- id_godzina
- godzina

4) dzien
- id_dzien
- dzien

przykladowe dane w tabelach

1) user

1 - Zbychu - Szybki
2 - Roman - Wolny
3 - Stanislaw - Dziw

2) lekarz

1 - doktora - doka
2 - doktorb - dokb
3 - doktorc - dokc

3) godzina

1 - 8:00
2 - 10:00
3 - 17:00

4) dzien

1 - 22.02.2010
2 - 23.02.2010
3 - 24.02.2010

chcielibysmy po zapisaniu do lekarza moc spr do ktorego lekarza sie zapisalismy na jaki dzien i na ktora godzine

czyli wydaje mi sie ze teraz tabela laczaca powinna wygladac tak

user2lek2dzien2godz

id_user2lek2dzien2godz
id_user
id_lekarz
id_godzina
id_dzien

pytania

1. jak stworzyc kod php ktory bedzie wybieral dane z 3 baz i tworzyl tabele laczaca?
2. jak kod stworzyc aby dane z bazy lekarz byly wyswietlane w formie linku po ktorego nacisnieciu pojawia sie dzien do wyboru i godziny przyjec

czyli mialby sie wyswietlic rekord z tabeli np. doktora - doka ---click---> 22.02.2010 8:00
10:00
17:00 ---click--> zostales zapisany na wizyte .....
23.02.2010 8:00
10:00
3.jak ograniczyc liczbe rekordow w tabeli w tabeli aby na dana godzine nie moglo sie zapisac wiecej niz np 5


prosilbym o pomoc

Ten post edytował plcm 12.04.2012, 16:41:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krowal
post
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 72
Dołączył: 15.11.2006

Ostrzeżenie: (0%)
-----


Co za głupi pomysł żeby robić tabelę z godzinami i dniami (IMG:style_emoticons/default/smile.gif) Uzasadnij to logicznie a zwrócę Ci honor (IMG:style_emoticons/default/smile.gif)
Do wykonania tego zadania potrzebujesz w zasadzie tylko trzech tabel, dla uproszczenia podam w nich tylko niezbędne pola:

[pacjent]
-id

[lekarz]
-id

[wizyta]
-id_lekarza
-id_pacjenta
-czas_wizyty

Przy dodawaniu rekordów musisz uwzględnić, że żaden pacjent nie może ustawić sobie dwóch wizyt w tej samej godzinie, taka sama zasada dla lekarza, nie może być dwóch pacjentów do jednego lekarza w tej samej godzinie. Zakładamy że wizyta trwa godzinę i 'czas_wizyty' wstawiasz w formacie 'yyyy-mm-dd hh:00:00'. Dzięki temu możesz potem łatwo wybrać wszystkie wizyty danego pacjenta/lekarza w określonym zakresie czasu.
Na takim układzie możesz zrobić w zasadzie wszystko czego potrzebujesz.

Cytat
1. jak stworzyc kod php ktory bedzie wybieral dane z 3 baz i tworzyl tabele laczaca?

Nie robi sie takich rzeczy, tworzenie tabel w locie to wynik złego zaprojektowania aplikacji. Zamiast tego umieszczasz rekordy w tabeli [wizyta]

Cytat
2. jak kod stworzyc aby dane z bazy lekarz byly wyswietlane w formie linku po ktorego nacisnieciu pojawia sie dzien do wyboru i godziny przyjec

Klikasz w link '/wizyta?lekarz=xx' i wyświetlasz tam kalendarz z wszystkimi wizytami wybranego lekarza z możliwością wybrania wolnej godziny. Trzeba trochę pomyśleć (IMG:style_emoticons/default/smile.gif)

Cytat
3.jak ograniczyc liczbe rekordow w tabeli w tabeli aby na dana godzine nie moglo sie zapisac wiecej niz np 5

Nie wiem o co dokładnie Ci chodzi bo chyba nie o to żeby jeden lekarz mógł w danej godzinie przyjąć do 5 pacjentów ? Jakby nie było wystarczy proste zapytanie sql, które policzy ilość zapisanych wizyt dla danego lekarza w danej godzinie lub w wybranym zakresie czasu
  1. SELECT COUNT(*) AS ile_wizyt FROM wizyta WHERE id_lekarza = x AND czas_wizyty = '2012-04-12 12:00:00';
  2. SELECT COUNT(*) AS ile_wizyt FROM wizyta WHERE id_lekarza = x AND czas_wizyty BETWEEN '2012-04-12 12:00:00' AND '2012-04-12 16:00:00';

potem sprawdzasz czy ile_wizyt przekracza limit i jeśli tak to nie pozwalasz na dodanie kolejnego wpisu dla danego lekarza.

To chyba tyle (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 03:09