Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy relacje miedzy tymi tabelami są prawidłowe?, Nowe pytanie do narysowanego schematu.
Iza_M
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 7.09.2006

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


Czy może być takie połączenie między tabelami - można powiedzieć "obwód zamknięty" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) tzn. użytkownik-ogłoszenie-skojarzenie-cv-użytkownik.
(IMG:http://www.mFoto.pl/uploads/1087/relacje_55909.jpg)

Nie ma żadnych związków wiele do wiele, wszędzie jest jeden-wiele.

Nie jestem pewna czy takie rozwiązanie ,które tutaj przedstawiłam jest słuszne. Prosze o wasze opinie i ewentualne uwagi.

Baza danych ma przechowywać dane użytkowników, rozróżnianych na Pracownika i Pracodawcę : tutaj tego nie ujęłam, w kazdym razie Pracownik będzie miał szersze kompetencje od zwykłego użytkownika czyli Pracownika - pomyślałam,że dodam dodatkową tabelę z dodatkowymi danymi Pracodawcy skojarzoną z Użytkownikiem.
Zależnie od typu uzytkownika, bedzie można dodawać do BD CV (Pracownik) albo Ogłoszenie (Pracodawca).

Tabela Skojarzony ma łączyć Ogłoszenie Pracodawcy z Wybranymi CV poleconymi przez Pracowników,którzy zgłosili taką opcję i odwrotnie ma też łączyć CV z ogłoszeniem Pracodawcy, który powiadamia Pracownika, którego wybrał o swoim Ogłoszeniu.
Dodatkowe pole w tej tabeli określi czy skojarzenie dotyczy Pracownika czy Pracodawcy.

Plan jest taki jeszcze : przechowywanie w BD wiadomości o zapamiętanych,zanotowanych "na później" Ogłoszeniach przez Pracowników i CV przez Pracodawców.
Nie wiem za bardzo jak to zrealizować. Dodając nową tabelę Notatnik i wiążąc ją z CV albo Ogłoszeniem wprowadziłabym straszny rozgardiasz...

Mam nadzieje ,ze bardzo nie zamotałam na wszelkie pytania odpowiem jeszcze jeśli bedzie coś niejasne.

Czekam na opinie - chętnie też te nieprzychylne - co do tego rozwiązania. Wszelkie uwagi na wagę złota.

W tabelach brakuje atrybutów, bo projekt pisałam narazie wstępnie i nie dopisywałam żadnych dodatkowych pól.

Nie jestem pewna, czy mogą być powiązane w ten sposób tabele...
Do BD wróciłam po dłuższym czasie. No i jak widać ciut pozapominałam. Teraz stoje przed małym projektem i mam dylemat. Szukałam odpowiedzi w dawnych wykładach, przeszukałam inne zasoby i nigdzie nie znalazłam w nich "zanegowania" takiego rozwiazania...
Ale z tego co pamiętam coś było w tej kwestii, że tabel nie można tak łączyć, żeby "zamykały" się w ten sposób ich relacje. Pamiętam to jednak jak przez mgłę - a nigdzie nie mogę doszukać sie czegoś co by mi tą wątpliwość rozwiało. Być może się mylę.

Będe wdzięczna za jakieś sugestie.

Ten post edytował Iza_M 3.10.2006, 17:05:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Cytat
w kazdym razie Pracownik będzie miał szersze kompetencje od zwykłego użytkownika czyli Pracownika

Cos ci sie pomieszalo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
Zależnie od typu uzytkownika, bedzie można dodawać do BD CV (Pracownik) albo Ogłoszenie (Pracodawca).


A nie mozna bedzie na jednym koncie/uzytkowniku dawac ogloszen i CV? Przeciez takie sytuacje tez sa mozliwe.
Mozesz dodac do ogloszenia idUzytkownik co bedzie wskazywalo na pracodawce tego ogloszenia; a w CV idUzytkownik bedize wskazywalo na Pracownika. I teraz kazdy uzytkownik moze byc i pracodawca i pracownikiem.


Cytat
Nie ma żadnych związków wiele do wiele, wszędzie jest jeden-wiele.

Teoretycznie to sie zgadza (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Ale kazde CV moze byc skojarzone z wieloma ogloszeniami, i do kazdego ogloszenia mozna skojarzyc wiele CV (przez tabele Skojarzony) czyli mamy relacje wiele do wielu -- ale to normalne, relacje wiele do wielu wlasnie tak sie tworzy w bazie danych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Brakuje kluczow obcych w Jezyki, Doswiadczenie, itd. skazujacych na CV (choc moze sa ukryte w zwinietym polu FK)

Cytat
Plan jest taki jeszcze : przechowywanie w BD wiadomości o zapamiętanych,zanotowanych "na później" Ogłoszeniach przez Pracowników i CV przez Pracodawców.

Znow wiele do wielu, tabele zapamietane_CV(idUzytkownika, idCV)
i zapamietane_ogloszenia(idUzytkownika, idOgloszenia)
kazda z nich uczestniczy w jednej relacji wiele do wielu.
Cytat
Dodając nową tabelę Notatnik i wiążąc ją z CV albo Ogłoszeniem wprowadziłabym straszny rozgardiasz...

Ale nie utworzysz kluczy obcych, bo jedna kolumna (z FK) musiala by byc powiazana z id CV lub id Ogloszenia, no chyba ze miala bys dwie kolumny na ID z tym ze mogly by byc puste (NULL). Polecam dwie tabele.
Go to the top of the page
+Quote Post
Iza_M
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 7.09.2006

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


Witam, dziękuję za podpowiedzi:)

Cytat
Cos ci sie pomieszalo

Rzeczywiście troszkę namieszałam, przepraszam- chodziło o to ,że Pracodawca miałby większe prawa od Pracownika.Jednak to wcale przecież nie uniemożliwa trzymania ich w jednej tabeli (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) - tutaj wiec się troszkę zapędziłam.
Cytat
A nie mozna bedzie na jednym koncie/uzytkowniku dawac ogloszen i CV? Przeciez takie sytuacje tez sa mozliwe.
Mozesz dodac do ogloszenia idUzytkownik co bedzie wskazywalo na pracodawce tego ogloszenia; a w CV idUzytkownik bedize wskazywalo na Pracownika. I teraz kazdy uzytkownik moze byc i pracodawca i pracownikiem.

Tak właśnie przedstawiłam na przykładzie i tak chyba zostawię, masz rację (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Cytat
Brakuje kluczow obcych w Jezyki, Doswiadczenie, itd. skazujacych na CV (choc moze sa ukryte w zwinietym polu FK)


Wiem, wiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to wszystko do uzupełnienia...

Co do notatnika pomyślałam, że skoro wszyscy będą trzymani w tabeli Użytkownicy to i Notatnik będzie mógł być jeden z polem,które będzie zawierało -id_zanotowane- CV lub Ogłoszenia a rozróżnienie o które z nich chodzi będzie dawało pole -rodzaj- ( CHAR(1) 'o' or 'c' ).


Zrobiłam jeszcze raz ten wstępny projekt tym razem jako diagramy ERD dodając dodatkowo tabele potrzebne do sesji (dane o sesji będę przetrzymywać w bazie danych) oraz Notatnik :
Bardzo zależy mi na opinii czy diagram jest ok, tak chyba ostatecznie utworzyłabym relacje pomiędzy tabelami
(IMG:http://www.mFoto.pl/uploads/1088/erd-ogloszenia_f65eb.jpg)

-------------
-------------
Nasunęło mi się jeszcze jedno pytanie,czy taka relacja miałaby sens i czy taka relacja mogłaby wystąpić tutaj:
(IMG:http://www.mFoto.pl/uploads/1088/erd-ogloszenia2_ade44.jpg)

Czy jest sens przetrzymywać id użytkownika w tym Skojarzeniu. Podam przykład. Wchodząc na swoje konto użytkownik "Pracodawca" będzie miał możliwosć przeglądania swoich Ogłoszeń, przy każdym Ogłoszeniu będzie możliwość sprawdzenia ile CV zostało zaproponowanych do wybranego Ogłoszenia i wtedy proste zapytanie:
"SELECT id_CV FROM Skojarzenie WHERE id_ogloszenie=$id_ogloszenie AND rodzaj='o' ";
Dostawałby wtedy listę zaproponowanych dla danego Ogłoszenia CV.

Analogiczna sytuacja byłaby dla użytkownika "Pracownik" tyle ,że z zapytaniem:
"SELECT id_Ogloszenie FROM Skojarzenie WHERE id_CV=$id_CV AND rodzaj='c' ";

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
:roll2:


--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
Dodane: 3 października 2006r


Hej witam po pewnym czasie.

Mam takie pytanie do Was, co do powyzszego rozwiązania.

Mam dwie tabele: "CV" i "Ogłoszenie",które zawierają kolumnę województwo.
Bardziej efektywnie byłoby stworzyć oddzielną tabelę "Wojewodztwo" - tylko czy mogę ją połączyć zarówno z jedną i z drugą tabelą ("CV" i "Ogłoszenie") relacjami. To odnośnie przykładu, który podałam wyżej...

Ten post edytował Iza_M 3.10.2006, 17:06:19
Go to the top of the page
+Quote Post

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: 24.08.2025 - 13:36