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 20 sati, 48 minuta
  • Yonkis: E to to pitam, kojom funkcijom/aplikacijom. Vrlo dobra stvar!
  • Junuz: Yonkis, upozorio me narušenim vitalnim funkcijama, za pluća znam da je naglasio broj udisaja naspram prosječnog i temperatura 1 od prosječne.Za kamenac se nesjećam ali je poruka bila da posjetim liječnika
  • Riba: Huawei GT Runner, dok mi ne dodje Pebble Round 2.
  • Krehacro: Riba koji nosis
  • Riba: Osim ago ga zaboravi napuniti. :) Meni je izbor jednostavan jer mi ne dolazi u obzir nista sto moram puniti cesce od jednom tjedno.
  • drlovric: Za normalan zivot kupi Apple watch. Ako si hardcore sportas, uzmi Garmin. Prvi put kada zaboravis novcanik ili mobitel, a imas Apple watch, bice ti drago sto nisi kupio Garmin :)
  • Krehacro: pa nije samo trcanje
  • Riba: Ako ti se ne puni sat svaki dan i treba ti za trcanje onda Garmin bez razmisljanja. Ako su ti bitne 'smart' funkcije i ne smeta te cesto punjenje, onda Apple.
  • Krehacro: I fitness i daily use
  • Riba: Za koju primarnu namjenu?
  • Krehacro: Mislim se izmedju garmin venu 4 ili apple watch 12
  • Yonkis: Sa čime te upozorio?
  • Junuz: Krehacro, apple svaka preporuka.Dva puta me upozorio na posjet liječnika.Koje sam naravno ignorirao i obadva puta završio u bolnici po 4 dana.Jednom upala pluče drugi put kamenac
  • Krehacro: Isplati li se uzet apple watch ili pak neki drugi smartwatch da gledam
  • Junuz: Yonkis, još 4 zadaće i lakiranje klupa po oprobam.Izgleda čekam radni dan da odmorim.
  • Yonkis: Jel’ upalilo?
  • Junuz: Hvala
  • Yonkis: Evo ovdje Junuz [link]
  • Yonkis: @Junuz pošaljem ti poruku ali možeš otvoriti i novu temu u Forumu
  • Riba: Junuz, pisi u forum.
  • Junuz: Pozz, zna li neko kako da deinstaliram apple int u os u 27 (MacBook neo).Bespotrebno mi je zauzeto 20 GB
  • CoffeePod: [link]
  • CoffeePod: Pokrenuo sam subreddit za Apple HR
  • Yonkis: Apple Intelligence Taking Up 30GB on Some Macs Running macOS 27
  • Yonkis: 1 i 2TB iPhonei su sporiji tj koriste sporiju memoriju nego 256 i 512GB [link]
  • Yonkis: Novosti od Applea: [link]
  • mbp2009: meni je odmah nakon updatea na 27 rc baterija dosta bolje
  • Yonkis: CoffeePod - drži ga prikopčanog na punjaču, bez LowPowerModea. I što manje ga koristiti, prčkati po iPhoneu.
  • Yonkis: navodno prijašnja 2 updatea, 26.5.1 je već započeo pripremu indexiranja, 26.5.2 popravio bug da se update može skinuti preko non-WiFi mreže, a indexiranje može potrajati 2-3 dana, ovisi o količini aplikacija i podataka
  • CoffeePod: iOS27 fenomenalan. Baterija loša dok se ne indexira
  • ping: Kad klikneš na tipku odaberi kod iPhone DUO. Na kratko se pojavi cijena. 999.999,99 €
  • Yonkis: Nisu se još usaglasili koliko bubrega će koštati. 6 ili 9, a možda čak i 11.
  • stefanjos: jel tako tesko istyleu cijenu izbaciti za duo. haha mislim nije mi zivotne vaznosti
  • Borisone: Iako je puni broj, update nije tako značajan kao prošlih godina. Da nema Siri AI (za neka tržišta, ne i naše) ne bi imali o čemu pisati.
  • Yonkis: Jel’ se netko ažurirao na iOS 27?
  • stefanjos: to im je goalgetter pa su trebali
  • Borisone: Čudno da je samo Apple TV stigao. Obično regionalno postane dostupan s još nekim od Apple media servisa (One, Books, ...)
  • CoffeePod: Zna neko kako dobit novu siri na Golden Gate?
  • CoffeePod: Uf odmah sam se pretplatio!
  • Pongy75: Bez HR titlova
  • matijazx: Apple TV je stiglaaaa
  • mbp2009: Reduce transparency zapravo ukloni veliku vecinu tog. Jos ima taj stakleni dio na npr semaforu, ali ukloni se transparentnost opcenito
  • mbp2009: lijepo to sve izgleda, ali generalno mi se cini da trosi bateriju ipak vise
  • mbp2009: instalirao sam ja, iskreno, malo je dosadno pa sam skratio i stavio ono reduce transparency
  • Yonkis: Mislim da stakleni efekt ostaje do sljedećeg desetljeća. Onda možda pređu na kromi ili polirani čelik look. :)
  • smayoo: Što se mene tiče, za taj "fićr" imam zero tolerance. "Podnošljivo" nije dovoljno dobro. :/
  • dpasaric: Ublažili su ga dosta, pa je navodno podnošljivo.
  • smayoo: Ako jesu, možda bih se za odvažio instalirati ga pa testirati
  • smayoo: Jesu li odustali od onog horror liquid shit UI-ja?
  • dpasaric: Za Golden Gate je potreban Appleov M hardver, a ja sam još na Intelu, tako da nemam načina to osobno testirati.

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 0.54 Seconds

Provided by iJoomla SEO