Baza podataka - problem sa nekoliko many-to-many
(1 korsinik/a gleda/ju temu) (1) Gost

Baza podataka - problem sa nekoliko many-to-many


09.01.2011 | 15:04
Radim jednu bazu, nije prebitno al eto u MYSQL-u, i imam problem s tim što imam nekoliko tablica koje su povezane sa many-to-many vezom.

Primjerice, studenti, nastavnici, kolegiji, fakulteti.

Jedan student može slušati više kolegija
Jedan kolegij može držati više nastavnika
Jedan nastavnik može raditi na više fakulteta

Kad su samo dvije tablice npr. studenti i nastavnici, onda jednostavno napravim "presječnu" tablicu studenti_nastavnici gdje su primarni ključevi u tablicama studenti i nastavnici ovdje strani ključevi i tvore kompozitni primarni ključ.

No ovdje imam 4 takve tablice i sad ne znam kako pristupiti:

1. napraviti tablicu studenti_nastavnici_kolegiji_fakulteti po uzoru na gornje rješenje
2. napraviti prvo presječne tablice studenti_nastavnici, nastavnici_kolegiji, kolegiji_fakulteti pa onda neku novu presječnu za ove tri
3. nešto treće
09.01.2011 | 20:47
Nisam baš neki stručnjak, ali ja mislim da bi trebo napraviti tablice kolegij_nastavnik, nastavnik_fakultet i student_kolegij. Mislim da bi to izgledalo ovako.
bp.jpg
Onda samo veze treba pretvoriti u tablice.
09.01.2011 | 22:20
john_st je napisao:
No ovdje imam 4 takve tablice i sad ne znam kako pristupiti:


pristup ovisi o povezanosti tih relacija. Da li su relacije uvijek povezane ili nisu nužno?

1. napraviti tablicu studenti_nastavnici_kolegiji_fakulteti po uzoru na gornje rješenje


To je najlakši način ako si siguran da uvijek i u svakom slučaju možeš svakoj trojci (nastavnik, kolegij, fakukltet) dodijeliti makar jednog studenta. Ako ne možeš (ako u određenim akademskim godinama neke izborne kolegije ne upiše nijedan student), onda ne možeš imati ovakav pristup, odnosno moraš dozvoliti da referenca na studente ostane prazna.

2. napraviti prvo presječne tablice studenti_nastavnici, nastavnici_kolegiji, kolegiji_fakulteti pa onda neku novu presječnu za ove tri]


Razmisli da li za kolegiji-fakulteti moraš ovo izvoditi ili možeš kolegiji fakulteti postaviti kao one-to-many (uz svaki kolegij postaviš relacijsku referencu na njegov fakultet). Sumnjam da je postoji kolegij koji se baš na dlaku pljunuto do u minutu isto predaje na različitim fakultetima, čak i ako se zove baš isto.

Osim toga, razmisli da li ti relacija studenti-nastavnici daje dovoljno informacija. Ako nastavnik predaje više kolegija, ti onda na temelju relacije studenti-nastavnici ne znaš točno koje kolegije ti studenti slušaju. Također, ako slušaju više kolegija kod istog nastavnika, nemaš mogućnost prikazati više od jedne ovakve relacije.

Dakle, po mom mišljenju:

kolegij (oo) - fakultet (1)

kolegij (oo) - nastavnik (oo) - student (oo)

kolegij (oo) - nastavnik (oo) relaciju dobivaš SQL querijem na gornju trostruku relaciju:

SELECT DISTINCT kolegij, nastavnik FROM kolegij-nastavnik-student;

tako da je ne moraš čuvati posebno.

Međutim, kako sam ranije napisao, moraš dozvoliti da polje "student" može biti null.


3. nešto treće


Ako želiš sve napraviti striktno by the book, onda

kolegij (oo) - fakultet (1)

rKN: kolegij (oo) - nastavnik (oo)

rKN (oo) - student (oo)
09.01.2011 | 22:38
Taman sam htio napisati (više manje) ovo što je napisao smayoo, dok sam kliknuo Odgovori - eto njegovog

Smayoova druga solucija ima dobru i lošu stranu jer točno znaš kod kojeg nastavnika je student - ako student može biti samo kod jednog od nastavnika (recimo, rade se grupe za predavanja ili labose) onda je to dobro. Ako student može/mora biti kod više od jednog nastavnika (recimo, na ispit može doći bilo kod A bilo kod B, bilo kod C), onda moraš imati tri zapisa o istoj stvari (s jednim, drugim i trećim nastavnikom), ili uvesti dodatni podatak (npr. ubaciti umjesto nastavnika podatak o grupi, i imati kolegij_grupa_student i kolegij_grupa_nastavnik, u kojima će u prvoj tablici studenti biti pridjeljeni grupama, a u drugoj nastavnici grupama ).


Ako radiš nešto ozbiljnije svaka solucija (i by the book, i sve između) će imati problema, imali smo jedan prekinuti projekt na kojem smo izvrtili nekih 3-4 načina povezivanja baš ovih podataka i svi imaju nekakav plus i nekakav minus. Na kraju se zadovoljiš s nečim, i programiraš dalje
09.01.2011 | 23:34
hvala momcovi! prostudiram šta napisaste pa se javim s reakcijama.
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 9 sati, 58 minuta
  • dpasaric: Ja sam danas naručivao što se još može od lagera s QWERTY, pa ćemo vidjeti što ću dobiti! :)
  • zvone: Zvao istyle da interveniraju da ostavw qwerty posto ionako prave tipkovnice posebno za ht trziste. Krajnje su nezainteresirani. Ali kazu da se ljudi jako žale.
  • Bertone: Sused, ni to tema za vikalicu, trebao si to pitati u temi o budućnosti čovječanstva ;)
  • cariblanco: [link]
  • cariblanco: Vidi komentare ispod ovog teksta !!
  • cariblanco: Zadatak za smayoo...zašto je nestalo struje
  • dpasaric: Vidim da će stare QWERTY tipkovnice odjednom dobiti na cijeni! :)
  • zvone: Nervira me jer mijenjaju bez veze.
  • smayoo: Ali zašto je to takav stress? Ako su potpuno ukinuli stari layout, posložiš si kako ti paše pomoću Ukelele
  • smayoo: QWERTZ je uvijek i oduvijek hrvatski standard tipkovnice, a ovaj apple QWERTY hibrid je izmišljotina iz nekadašnjeg "zastupnika" PEL Velebit.
  • IgorD: Prvo su prebacili @ pa sad stalno stišćem ™ a od zadnjeg sistema ni € nije gdje je bio
  • IgorD: Ja na iOSu ionako uvijek imam EN tipkovnicu, samo kad mi treba đ prebacim na hr. Frka je što su i s Macovima krenule qwertz tipkovnice
  • zvone: Ako se vrati u postavkama automatski se vraca na qwertz. Iritantno do bola.
  • zvone: Kupio novu tipkovnicu za m4 ipad pro. Hrvatska je ali vise nije qwerty nego qwertz. Razocaran.
  • drlovric: Ja nemam dres Osijeka :)
  • VanjusOS: ako ćeš obući dres Osijeka, ja ti nabavim kartu bez problema
  • VanjusOS: drlovric, nema više karata za Hajduka
  • drlovric: Ako ima neko iz Osijeka molim da mi se privatno javi. Trebam uslugu. Hvala puno :)
  • JOHN: Počivao u miru Božjem :(
  • Borisone: U oglasniku mini Pro ako nekog zanima.
  • Gjuroo: Počivao u miru.
  • smayoo: Ode nam Papa Franjo, na Uskrsni ponedjeljak. Počinak je zaslužio, i više od toga. Neka se Crkvi primi barem nešto od njegovog nasljeđa.
  • VanjusOS: Sretan Uskrs!
  • Damirst: Srstan Uskrs!
  • smayoo: Sretan Uskrs svima! :)
  • Tomek: Sretan Uskrs !!
  • ping: Sretan Uskrs
  • dpasaric: Mira i ljubavi! :)
  • Gjuroo: Sretan Uskrs!
  • Yonkis: Sretan Uskrs svima!
  • Zdravac: Sretan Uskrs!
  • drpongrac23: Sretan Uskrs svima koji slave!
  • Tomek: sad dok se ja ponovo uštekam u MACOS sustav, imat ću pitanja pa ću biti malo dosadniji :D
  • Tomek: Hvala svima... Kakav je stroj, računam s njime barem 10 godina...
  • dpasaric: Welcome back! :)
  • smayoo: Eeeej, Tomek! :)
  • Zdravac: Tomek, dobrodošao nazad! Nek te dobro i dugo služi! :)
  • Tomek: Eto nakon dugo godina, ponovo na Macu... Pozdrav svima
  • Borisone: Rekao političar i otišao krkati s generalima dok je vojska na paštetama i prekuhanim jajima.
  • Junuz: ko nehrani svoju vojsku hraniće tuđu
  • Yonkis: Apple Maps kamera naprtnjača: [link]
  • m@xym: ...nikakvu vojnu naobrazbu.
  • m@xym: Za dva mjeseca možeš naučiti rukovati pješačkim naoružanjem (od rastavljanja, sastavljana i čišćenja, do toga kako ga otkočiti, zakočiti, napuniti, sve do pucanja). Čovjek koji nema nikakvu vojnu naobrazbu, je glineni golub u slučaju rata, osoba koja je dva mjeseca nešto učila, i naučila, svakako nije. Zamisli koliko bi tek žrtava bilo da nitko od ljudi sa kojima si bio nije imao
  • Maxxy: Mi imamo malu aktivnu podobnu vojsku. A za 2 mjeseca će samo naučiti biti lijepa meta na ratištu. Proveo sam u ratu malo manje od 5 godina, i sve što ću još reći na ovu temu je da smo imali više žrtava od neznanja (igranje sa raznim zanimljivim spravicama i puškama) nego od neprijatelja! Srećom u ono vrijeme nije bilo dronova!
  • drlovric: Ja sam bio 10-11 mjeseci cini mi se. Pola vremena smo aktivno nesto ucili, pola smo ribali hodnike, kupili lisce i smarali se po vojarni. Ja sam bio 11107 (prepisali JNA VES oznaku) vojna policija, antiterosticke aktivnosti.
  • drlovric: Nekakav ustroj sa 3 mjeseca temeljne obuke da vojnik zna koirsititi pusku i kretati se unutar svoje formacije je bolje nego nista. I mozda neki modus za dodatna 2-3 mjeseca specijalisticke obuke tko to zeli. Kao neki vid nadgradnje znanja.
  • m@xym: Mi to (malu sposobnu aktivnu vojsku) već imamo. Ovih 2 mjeseca je sasvim dovoljno da mladići nauče osnove baratanja oružjem.
  • Maxxy: Vojnirok od 2 mjeseca je sprdnja. Ili lupite godinu dana, ili financirajte malu sposobnu aktivnu vojsku. Ovako se samo bacaju novci bez ikakve koristi
  • Yonkis: A što ne otvorite temu nego ovdje tipkate :)
  • Szguri: Ono što želim reći je da ljudi mogu živjeti nevjerojatno sigurne i udobne živote zato što je njihova država spremna za loše scenarije.

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Air, IgorD, Maxxy, robee, rusty, Yonkis, Anonimci (1208)

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 0.93 Seconds

Provided by iJoomla SEO