![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
W ramach ćwiczeń piszę taką prostą aplikację ankietową. Wszystko z nią związane (ankiety, osoby wypełniające, pytania, odpowiedzi itp.) zapisuje do bazy danych. Natrafiłem jednak na pewien problem, z którym mam nadzieję dzięki Wam sobie poradzę. Główne założenia w skrócie: 1. Tworze użytkownika. 2. Tworze grupę. 2. Dodaje użytkownika do grupy np. do grupy "test". 3. Tworze ankietę. 4. Dodaję ankietę do grupy "test", aby była dla niej widoczna. 5. Użytkownik widzi ankietę, bo są w tej samej grupie, ale pod warunkiem, że jej wcześniej nie wypełnił. Posiadam tabele: Użytkownicy {id_użytkownika, ...}. Grupy (id_grupy, ...}. Grupy_użytkowników {id_użytkownika, id_grupy} - występuję tutaj INNER JOIN z Użytkownikami i Grupami. Ankiety {id_ankiety, ...}. Widoczność_ankiety {id_ankiety, id_grupy} - występuję INNER JOIN z Ankietami i Grupami. Pytania {id_pytania, id_ankiety, ...} - występuję tutaj INNER JOIN z Ankietami. Odpowiedzi (id_answer, id_pytania} - występuję tutaj INNER JOIN z Pytaniami. Wypełnione (id_użytkownika, id_ankiety}. Doszedłem do momentu, gdzie trzeba sprawdzić, jakie użytkownik ma dostępne ankiety do wypełniania oraz czy ich już przypadkiem nie wypełnił i tutaj właśnie zaczynają się problemy. Chociaż mogę pobrać wszystkie ankiety widoczne dla poszczególnego użytkownika poprzez INNER JOIN, to jednak nie wiem, jak sprawdzić, czy wcześniej danej ankiety on nie wypełnił. Pierwsze co pomyślałem, to pobiorę dostępne ankiety dla użytkownika, następnie wezmę wszystkie ankiety z tabeli Wypełnione, które wypełnił i je porównam, jednak po chwili zastanowienia, to nie był dobry pomysł. Jeżeli brakuję jakiś informacji lub coś tutaj pokręciłem, to proszę dać znać. Nie liczę wcale na gotowce, ale mam nadzieje, że mnie nakierujecie. Będę bardzo wdzięczny. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:33 |