ugrás a tartalomhoz

Kapcsolódó oldalak adatbázisból és nevek linkelése

netfox · 2010. Május. 25. (K), 16.01
Sziasztok!

Gyakorlott PHP fejlesztőnek tartom magamat, ezért elsősorban a véleményetekre, megoldási javaslatokra lennék kiváncsi két dologgal kapcsolatban, amely a munkám során felmerült és korábban még nem találkoztam hasonlókkal:

1. Adott egy hirek tábla az adatbázisban, a hir.php?id=XY hatására a böngésző ebből behozza az adott hírt. Ehhez szeretnék egy olyan blokkot készíteni, ahova adminfelületen más híreket lehet kapcsolni, de több lehetőség is felmerült és nem tudom melyek mellett tegyem le a voksom. Az első, hogy létrehozok egy másik táblát, ami tárolja a kapcsolódásokat, egyesével, hírenként (pl. hír ID-ja, kapcsolódó hír ID-je, hír címe), de ígykönnyen több ezer rekord születhet. A másik, hogy dedikálok a hirek táblában egy kifejezett mezőt a kapcsolódó oldalaknak, ahova csak beírom az adott hírek ID-it, vesszőel elválasztva, ennek azonban hátránya, hogy külön címet (ha esetleg azt akarom, hogy eltérjen a hír eredeti címétől) nem adhatok meg. Egyrészt feltétel, hogy ha 10 vagy 1000 oldal kapcsolódik az adott hírhez akkor se szöszmötöljön sokat az adatbázislekérdezés, másrészt, hogy legyen valami opciója az egyedi névnek, sőt esetleg linknek, ha mondjuk nem egy másik hírt, hanem pl. egy külső weboldalt linkelnék a hírhez.

2. A másik problémám teljesen más: adott egy Írók mező egy táblában, rekordonként felsorolva nevekkel, mint pl. "Kiss Géza, Nagy Béla, Kovács Imre". Na már most azt szeretném, hogy ez a weboldalon úgy jelenjen meg, hogy amelyik szerzőhöz van adatlapunk az automatikusan belinkelődjön. Gondolom az, hogy a külső oldal betöltéskor vesszőnként különválassza a neveket, majd egyesével végigpörgesse a több ezer rekordból álló szerzők táblában eleve halál. Esetleg mentésnél pörgetné végig, majd komplett linkké alakítaná a neveket, és úgy tárolná az adatbázisban, aztán szerkesztésnél látszólag levenné róla a linkeket, módosításnál pedig megint ugyanez a kikeresős-linkelős procedúra? A legnagyobb probléma itt az, hogy már eleve adott egy tucat könyv és szerző adatlapja, ha itt is egy kapcsolatokat tartalmazó táblát kellene bevezetni az igencsak kemény meló lenne, egyesével újra linkelgetni mindent...

Szóval erre a két problémára látnék szívesen megoldási javaslatokat, elméleti szinten természetesen, nem programkód formájában.

Egyébként remélem jó kategóriába raktam egyébként a kérdéseket, de sajnos nincs PHP+MySQL combo.

Köszi!
 
1

Tárolás

Poetro · 2010. Május. 26. (Sze), 15.24
  1. Az teljesen jó megoldás hogy csinálsz egy külön táblát a kapcsolódó híreknek, igazából ez a legoptimálisabb megoldás, és ne törd magad azon, hogy sok sor lesz, ez így természetes. Az hogy mennyi ideig tart a lekérdezésed úgyis a megfelelő indexek használatától (illetve azok hiányától) függ. A veszővel elválasztott dolgot pedig felejtsd el, nem optimális, és csak a gond van vele, ha adminisztrálni kell.
  2. Ismételten felejtsd el a vesszővel elválasztott értékeket, ugyanis tovább bonyolítja a dolgot, ha valaki nevében eleve vessző van, illetve nem lehet kapcsolni hozzá semmit, hanem újabb lekérdezés kell, miután szerver oldalon feldolgoztad a mező értékét. Ezt is érdemes kiszervezni egy kapcsolótáblába, amihez majd hozzá tudod kapcsolni a a szerzőket.