Citat:
Negde na forumu ovde, sam procitao da je lose kada se jedna tabela sa vise kljuceva veze za drugu tabelu.
Ovo nije tacno, nigde nije ogarnicen broj stranih kljuceva koje tabela moze da ima. Medjutim, ovo sto sam kazao ne znaci da je tvoja tabela dobro dizajnirana.
Ti imas
Citat:
Dakle, npr, imam neku tabelu u kojoj belezim konta razlicite namene (dosta njih... konkretno kod mene cak 13 komada) i svaki od tih konta je vezan stranim kljucem na tabelu kontnog plana. To znaci da postoji iz prve tabele 13 (!!!) stranih kljuceva ka drugoj tabeli.
Nije greska u drugom delu, gde kazes da svaka kolona ima FK na neku tabelu koja sadrzi listu dozvoljenih unos za konta. Greska je verovatno u prvom delu recenice, gde kazes
Citat:
Dakle, npr, imam neku tabelu u kojoj belezim konta razlicite namene (dosta njih... konkretno kod mene cak 13 komada)
Kazem, greska je
verovatno to sto imas 13 kolona koje sadrze istu informaciju = iznose koji se upisuju na neki konto.
Imas verovatno ovakvu tabelu:
Code:
ID Konto1 Konto2 Knto3 ....... Konto13
----------------------------------------
1 12din 15din 17din ..... 25 din
2 6din NULL 13din ..... NULL
Verovatno imas dosta NULL vrednosti (praznih "polja").
Obicno se to modelira (dizajnira, radi) ovako:
Code:
ID Konto Iznos
----------------
1 "Konto1" 12din
1 "Konto2" 15din
1 "Konto3" 17din
1 "Konto13" 25din
2 "konto1" 6din
2 "Konto3" 13din
U ovom drugom slucaju imao bi samo jedan FK, na tabelu gde su nazivi konta (kolona Konto)
Mozda u tvom konkretnom slucaju i treba da bude onako kako je napravljeno, jer
uvek imas
tacno 13 konta, nikada vise, nikada manje i
nikada se nece dodati novi konto. I sva konta su nekako povezana, recimo, zbir po jednom redu mora biti nula ili slicno. Onda mozda i treba da bude napravljena tabela ovako kakva je sada, sa 13 kolona. Podvukao sam reci 'uvek', 'tacno' i 'nikada'. To su veoma teske reci i u praklsi se tesko odrzavaju uslovi gde su svi uslovi tipa ('uvek','tacno','nikada') zaista ispunjeni. 'Vertikalni' dizajn omogucuje da se 'uvek' pretvori u 'uglavnom' ili 'ponekad' ili 'vecina' ili 'ne bas svi'. Uslov 'tacno' se pretvara u 'priblizno' ili 'proizvoljan broj'. Uslov 'nikada' pretvara se u 'uglavnom', 'skoro uvek', 'nikad,osim u specijalnim slucajevima...'
Zavisno od tvog konkretnog slucaja i problema koji resavas, postojeci dizajn tabele moze i ne mora biti dobar. Ali broj FK nije nigde nicim ogranicen. Postavljas onoliko FK koliko ti treba da odrzis integritet podataka. Preveliki broj FK moze da
ukazuje na moguce greske u dizajnu, pa je korisno i uputno jos jednom analizrati problem.