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 18 sati, 25 minuta
  • 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.
  • Szguri: nego zato što razumiju geografiju i povijest Rusija im je susjed, a povijest nije bila blaga. Isto sa Švicarskom: poznata po neutralnosti, ali izuzetno utvrđena i uvježbana. Država je doslovno dizajnirana tako da invazija bude noćna mora. Njihova neutralnost nije pasivna čuva je disciplina i spremnost.
  • Szguri: Osobno ne shvaćam naivnost toga da se ignorira činjenica da je rat i sukob odnosno mogućnost istog nešto što je ljudska slika i prilika od pamtivijeka. Možeš biti i spreman i miroljubiv, Švedska i Finska, primjerice, zadržale su ozbiljne obrambene kapacitete čak i tijekom mirnih vremena. Finska ima obvezni vojni rok i ogromne pričuvne snage, ne zato što su agresivne, nego zato što raz
  • Szguri: Pozdrav svima, čisto da se nadovežem na vruću temu. Kao netko tko je također bio u vojsci i imam raznog iskustva po tom pitanju.
  • drlovric: Bio sam u istoj misiji kao i profesionalni hrvatski vojnici. Nisam bio terorista niti neki placenik koji je isao da nanosi zlo ljudima tamo.
  • drlovric: Ja sam u pustinje isao po pare. Kao da je to neka tajna :) Nisam tamo bio iz uvjerenja ili nekih ideala, kao ni 95% ostalih ljudi.
  • JOHN: i odlučuje o tuđem mesu. Ja ako imam osjećaj braniti svoj dom i obitelj, to ću po inerciji napraviti, a ne da mi tamo neki kozojeb docira koji u backgroundu zgrče pare dok preslaguje pijune po karti a u pauzama vrti sa ratnim profiterstvom
  • JOHN: pustimo pojedince neka misle i idlučuju za sebe, a ne nekome da se hvali tuđim tijelom(mesom)
  • JOHN: Ako se granatiranje Zagreba ili recimo razvaljivanje Valpova smatra ulazak neprijatelja, onda jesam. I ne pričam drugačije od onoga što ti pričaš, nego samo kažem da netko okreće dobru lovu na tuđoj patnji. Ali kad me već potežeš za jezik…..daj me podsjeti kakve veze ima Afganistan i slične lokacije na kojima si radio s ulaskom u tvoj grad. Ponavljam, ja jedam za obuku i spremu, ali
  • drlovric: Da bi se ti u svojoj drzavi osjecao sigurno. Skupa sa svojom obitelji.
  • drlovric: Nisi srecom doziivo kako izgleda kada ti nepoznati naoruzani ljudi udju u grad/selo. Inace bi pricao drugacije i borio se za to da ti drzava ima najjacu mogucu vojsku.
  • drlovric: Vatrogasac treba alat za svoj posao. Ako ne ugasi pozar ljudi ginu. Vojnik treba alat za svoj posao. Ako vojnik ne odradi svoj posao, ljudi ginu. Jednostavno je.
  • JOHN: Vatrogasac neće nikoga ubiti brentačom ili recimo bocom kisika
  • JOHN: Pa uvijek je sporna kad je u pitanju ljudski život
  • drlovric: ne znam zasto je nenormalno to ocekivati. Nece ni vatrogasac gasiti pozar bez opreme, ali samo je za vojsku uvijek sporna svaka nabavka. Osim kad te napadnu pa kad radi guza od straha :)
  • drlovric: oni koji su spremni da riskiraju zivot, treba da imaju sve sto bi im u toj borbi pomoglo, da soase drzavu svih nas i ostanu zivi ako je moguce :)
  • drlovric: Ja sam kazem da sutra CG, SR, HU, IT napadne HR, ja bi za 3 dana bio na prvoj crti. Ako sam ja voljan braniti tu drzavu i riskirait svoj zivot, normalno je da ocekujem da ta drzava ima sanitet, ili helikopter da me spasi ako negdje krvarim. Ili da ima topnistvo, avione, obucene vojnike/ljekare/informaticare. A imati sve to je proces koji trazi vrijeme, pare i znanje. Ne treba svi ni da ratuju, ali
  • JOHN: :)
  • Bertone: Ak netko iz SOA-e sad čita Jabučnjak, još bu zaključio da je drlovric švercer oružja :D

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Air, korisnik, Laki, MacSlavko, Riba, tino1, vuzem, Anonimci (308)

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 1.23 Seconds

Provided by iJoomla SEO