Jó ötlet ha így tervezem meg az adatbázisomat?
Mennyire ajánlott/nem ajánlott úgy kialakítani a táblák közötti kapcsolatot, hogy a táblákon körbe tudjak menni?
Gyors példa: Van mondjuk egy felhasználó táblám, a felhasználó dolgozik egy cégnél (cég tábla). A cégnek vannak kapcsolat tartói (kapcsolat tartók tábla) és vannak különböző telephelyei (telephelyek tábla). Tehát a cégek táblában tárolnék egy telephely id-t és egy kapcsolattartó id-t, amik a kapcsolattartó és telephely táblákra mutató foreign key-ek. Szóval így megvan a telephely - cég - kapcsolattartó táblák közötti kapcsolat. Viszont én szeretném tudni azt is, hogy melyik kapcsolattartó melyik telephelyhez tartozik, anélkül hogy a cég táblát is be kelljen vonni a query-be, ezért a kapcsolattartó táblában is eltárolnám a telephely id-t. Így gyakorlatilag a végtelenségig lenne egy cég-kapcsolattartó-telephely-cég (vagy fordítva) köröm.
Mennyire ajánlott így tervezni?
Ha sok lekérdezésed van, érdemes optimalizálni a tábláidat ilyen szempontból is, azaz egy-egy adatot több helyen is elmenteni, mint folyamatosan három-négy táblához nyúlni egyszerre a lekérdezésekkor.
Viszont akkor nagyon ügyesen kell megírnod a szerkesztő/törlő rutinokat, hogy egyszerre változtasson minden szükséges helyen egy-egy több helyen tárolt adatot. Ha a program megbízhatóan elvégzi ezt és a kezed alá dolgozik ilyen szempontból, akkor jelentős lekérdezési sebesség-gyorsulást nyerhetsz a másik verzióhoz képest.
Pontosan milyen adatokat tárolsz milyen táblákban?
A leírásból csak annyi derül ki számomra, hogy pl. a cégek tábla így néz ki:
Cégek(telephely_id, kapcsolattarto_id)
A cégnek nincsenek egyéb adatai, pl. neve, címe, stb.? Jó lenne látni a teljes táblaszerkezeteket néhány példaadattal körítve.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!