Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: implementacja modelu relacyjnego
Forum PHP.pl > Forum > Bazy danych
ppp
Potrzebuje pomocy, jak zaimplementować tabele w bazie danych między którymi zachodzi powyzsza relacja.
Dla przykładu mając tabele ze studentami i kursami. Chciałbym żeby do każdego kursu przypisany był przynajmniej jeden student i żeby każdy student mógł być zapisany na dowolną ilość kursów.

W miarę oczywiste jest stworzenie dodatkowej tabeli student_kurs, natomiast nie mam pojęcia jak zapewnić zachowanie warunku o tym, że do każdego kursu musi być zapisany przynajmniej jeden student. Stowrzenie kursu automatycznie powinno go wykluczać bo nie istnieje żaden student zapisany na dany kurs, powinno więc odbywać się to w jakiś sposób jednocześnie i przy okazji tworzenia kursu powinna od razu zaistnieć jakaś relacja student->kurs. Nie wiem tylko jak to zapewnić (jakis trigger, funkcja czy cos).

moze juz ktos sie spotkal z takim problemem, bede wdzieczny z wszelka pomoc.
nospor
No ale po co ci coś takiego? Może napisz coś więcej bo może przekombinowales sprawe i wystarczy to załatwić po stronie php
ppp
Jakbym ja to robil, to by problemu nie bylo, ale ze mi to jest na zajecia potrzebne bo sobie wykladowca wymyslil takie zalozenie to nie poradze. (a ze przedmiot to bazy danych wiec i php raczej odpada smile.gif )

Normalnie to bym zostawil wiele do wielu, bez ograniczenia na minimum jeden i wszystko by dzialalo bez problemow...
nospor
hmmm, jedyne co mi przychodzi do głowy to w kursie dać pole na usera i to pole ma byc wymagane. Pozostałych userow zapisywac juz normalnie w dodatkowej tabele wiele do wielu.
Co nie zmienia faktu ze nauczyciel wymyslil sobie grypsa... przecież określając kurs nie znasz jeszcze kto bedzie na niego chodził. Może on miał na myśli wymaganego wykładowce a nie usera?
ppp
na pewno chodzi mu o studenta, z reszta generalni chodzi o sama idee takiej relacji.

dzieki za pomysl, o tym kumpel tez wlasnie myslal, chociaz trudno wyczuc czy to jest wlasciwe rozwiazanie.

alternatywnie jest rozwiazanie z dwoma triggerami, z ktorych jeden sprawdza przy tworzeniu kursu czy ktos juz jest na ten kurs zapisany (zalozmy ze moze sie tak zdarzyc) a jesli nie ma to wpisuje ten kurs do jakiejs tabelki tyczasowej. drugi trigger dziala przy tworzeniu polaczen student-kurs i kiedy pojawia sie polaczenie dla kursu z tabelki tymczasowej przenosi go do wlasciwej (sporo zabawy jak na cos takiego).

dzieki za pomoc
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.