Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> implementacja modelu relacyjnego, relacja 1..* -> 0..*
ppp
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 29.01.2008

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ppp
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 3
Dołączył: 29.01.2008

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


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
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: 10.10.2025 - 10:52