|
Serverske aplikacije i baze podataka PHP, Perl, ASP, ASP .NET, ColdFusion... MySQL, PostgreSQL, MSQL, Oracle... |
|
Alatke vezane za temu | Vrste prikaza |
22.2.2014, 13:41 | #1 |
Član
|
Projektovanje baze sa relacijom roditelj-dete
Pozdrav svima! Kao što naslov kaže, potrebna mi je pomoć oko projektovanja baze zasnovane na principu relacije roditelj-dete. Do sada je situacija bila sledeća: imam 4 tabele a odnos između njh bi se mogao prikazati na sledeći način:
Kod:
tabela1 -> tabela2 -> tabela3 -> tabela4 Kod:
SELECT tabela1.id,tabela1.naziv,tabela2.id,tabela2.naziv,tabela3.id,tabela3.naziv,tabela4.id,tabela4.naziv FROM tabela1 INNER JOIN tabela2 ON tabela1.id = tabela2.roditelj_id INNER JOIN tabela3 ON tabela2.id = tabela3.roditelj_id INNER JOIN tabela4 ON tabela3.id = tabela4.roditelj_id Kod:
+-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | naziv | varchar(50) | NO | | NULL | | +-------+-------------+------+-----+---------+----------------+ Kod:
+-------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | roditelj_id | int(11) | NO | | NULL | | | naziv | varchar(50) | NO | | NULL | | +-------------+-------------+------+-----+---------+----------------+ Kod:
<li>Tabela1 <ul> <li>Tabela2 <ul> <li>Tabela3 <ul> <li>Tabela4</li> </ul> </li> </ul> </li> </ul> </li> |
24.2.2014, 20:57 | #2 |
Član
|
Re: Projektovanje baze sa relacijom roditelj-dete
Evo da sam sebi dam odgovor na postavljeno pitanje, pa možda nekome zatreba. Rešio sam problem tako što sam u četvrtu tabelu dodao kolonu "roditelj_naziv" i izmenio sam upite tako da se u "WHERE" uslovu proverava koji je naziv roditelja i koji je njegov ID. Jeste da nije baš najelegantnije rešenje ali u ovom slučaju funkcioniše.
|
24.2.2014, 21:00 | #3 |
Banana
Član od: 9.1.2006.
Lokacija: _Cloud
Poruke: 6.106
Zahvalnice: 697
Zahvaljeno 2.628 puta na 1.354 poruka
|
Re: Projektovanje baze sa relacijom roditelj-dete
Ovo je savršen materijal za grafove.
|
24.2.2014, 21:20 | #4 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.482
Zahvalnice: 433
Zahvaljeno 4.007 puta na 3.729 poruka
|
Re: Projektovanje baze sa relacijom roditelj-dete
i učenje normalizacije baze podataka ili kako se već zvaše
|
24.2.2014, 22:46 | #5 |
Član
|
Re: Projektovanje baze sa relacijom roditelj-dete
To nije problem, baza je normalizovana do treće normalne forme. Ovo što sam naveo je samo mali primer koji sam trebao da rešim. Pregledao sam nekoliko knjiga koje se bave rešavanjem ovakvih zadataka, tj. hijerarhijskim strukturama baza podataka. Model koji sam ja koristio je takozvani Adjacency List, odnosno gde svaka tabela dete ima kolonu "roditelj_id" koja referencira kolonu sa primarnim ključem roditelja. Međutim, u slučaju gde jedna tabela može da ima bilo kojeg roditelja ovo nije dobro rešenje, jer bi u tom slučaju morao da imam 3 kolone za 3 moguća roditelja.
|
27.2.2014, 19:22 | #6 |
Veteran
|
Re: Projektovanje baze sa relacijom roditelj-dete
Samo obrati pažnju na upit koji si uraido.
Decu join-uješ između sebe - što u praksi sada ne predstavlja problem osim što krši logiku. Ali u budućnosti ako budeš trebao da koristiš LEFT ili RIGHT join može doći do nepredviđenih rezultata. |
Bookmarks sajtovi |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Command & Conquer (2012) | Packy | Strateške igre | 288 | 19.11.2013 14:20 |
Pomoć oko editovanja tabele baze | Miki2 | Web razvoj | 2 | 16.7.2013 2:29 |
download baze podataka sa free foruma | Drejk | Serverske aplikacije i baze podataka | 3 | 28.3.2013 2:06 |
Pravljenje PC igre | Arcibalde | Pravljenje igara | 43 | 23.10.2010 15:22 |
povezivanje baze podataka sa serverom | deus[awesome] | Programiranje | 5 | 23.12.2006 2:02 |