[ Mirko BGD @ 24.07.2014. 09:56 ] @
| pozz
imam bazu podataka it opreme
neke od tabela su mi
monitor sa kolonama monitor id, marka, model, sn
stampac stampac id, marka, model, sn
PC pc id, sn,
i spustaju se foreign keys od monitora i stampaca u tabelu PC
e sad ono sto meni treba je da generisem izvestaj gde cu moci da vidim SN PC, marku model stampaca, marku model monitora itd
da li je to moguce odraditi? |
[ Dusan Kondic @ 24.07.2014. 10:20 ] @
Postoji mnogo načina da se ovo izvede. Evo jednog.
Pošto tabele imaju polje "sn" pretpoostavljam da u njima čuvaš podatke o svakom pojedinačnom uređaju, a ne njegovom tipu. U tom slučaju možeš svakoj ovoj tabeli da dodaš polje PCId u kome bi upisivao Id PC-a kome taj uređaj ili komponenta pripada. U slučaju da uređaj ne pripada niti jednom PC-u, njegova vrednost može da bude npr. "0", "NULL" ili neki rezervisani broj.
Pošto će se ovo polje nalaziti u JOIN i WHERE klauzulama, možda je najbolje da u tabelu PC uneseš "Nepostojeći PC" pa da njegov Id dodeljuješ uređajima koji nisu dodeljeni ni jednom PC-u. Na ovaj način možeš da podigneš relacije između tabela i time učiniš bazu stabilnijom i bržom.
Pozdrav
[ djoka_l @ 24.07.2014. 10:47 ] @
Ne znam zašto je teško napraviti create table naredbe i insert test podataka, kada se postavljaju ovakva pitanja. Dakle uz mnogo pretpostavki i bez testnih podataka da bih testirao upit evo, ad-hoc rešenje
Code (sql):
SELECT p.sn, m.marka, m.model, s.marka, s.model
FROM pc p
LEFT OUTER JOIN monitor m ON p.monitor_id = m.id
LEFT OUTER JOIN stampac s ON p.stampac_id = s.id
[ Mirko BGD @ 24.07.2014. 13:16 ] @
evo je od prilike slika kako to sve izgleda:

Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.