Különböző szövegtípusok - új táblák vagy új mezők
Sziasztok!
Véleményeket, ötleteket szeretnék kérni az alábbi problémát illetően:
Egy jelenleg működő oldalamhoz tartozó szövegek egy táblában tárolódnak, legyen azok bármilyen típusúak (hír, cikk, termékleírás). Ezidáig egy szöveg típusa mezővel különböztettem meg őket egymástól, onnan tudtam, hogy az éppen aktuális modulnak mely szövegeket kell kezelnie.
Most azonban eljött az idő, hogy módosításokat hajtsak végre. Idáig a szövegek nagyrészt ugyanazokkal a tulajdonságokkal rendelkeztek: azonosító, szöveg, szerző, időpont. A jövőben viszont szeretnék olyat, hogy például a hír típus tartalmakhoz kapcsolódhatnak galériák, vagy éppen a termékleírásokhoz más termékek.
Tehát bővíteni szeretném olyan tulajdonságokkal az egyes szövegtípusokat, melyek más típusoknál nem szerepelnek. Milyen megoldást javasoltok Ti ennek megvalósításához?
Én két dologra gondoltam:
1. új táblákat hozok létre - pl cikkek, hírek - melyek tartalmazzák az alapszöveg azonosítóját, továbbá a szükséges plusz tulajdonságokat.
2. Létrehozok egy "univerzális" mezőt, ahol a serialize függvényt segítségük hívva eltárolok egy tömböt a plusz információkkal.
Válaszotokat előre is köszönöm!
■ Véleményeket, ötleteket szeretnék kérni az alábbi problémát illetően:
Egy jelenleg működő oldalamhoz tartozó szövegek egy táblában tárolódnak, legyen azok bármilyen típusúak (hír, cikk, termékleírás). Ezidáig egy szöveg típusa mezővel különböztettem meg őket egymástól, onnan tudtam, hogy az éppen aktuális modulnak mely szövegeket kell kezelnie.
Most azonban eljött az idő, hogy módosításokat hajtsak végre. Idáig a szövegek nagyrészt ugyanazokkal a tulajdonságokkal rendelkeztek: azonosító, szöveg, szerző, időpont. A jövőben viszont szeretnék olyat, hogy például a hír típus tartalmakhoz kapcsolódhatnak galériák, vagy éppen a termékleírásokhoz más termékek.
Tehát bővíteni szeretném olyan tulajdonságokkal az egyes szövegtípusokat, melyek más típusoknál nem szerepelnek. Milyen megoldást javasoltok Ti ennek megvalósításához?
Én két dologra gondoltam:
1. új táblákat hozok létre - pl cikkek, hírek - melyek tartalmazzák az alapszöveg azonosítóját, továbbá a szükséges plusz tulajdonságokat.
2. Létrehozok egy "univerzális" mezőt, ahol a serialize függvényt segítségük hívva eltárolok egy tömböt a plusz információkkal.
Válaszotokat előre is köszönöm!
táblák
Elotte ugy volt
XML?
ha mindenképpen így akarod, akkor tárolhatod XML-ben is egy BLOB mezőben, de szerintem picikét nincs átgondolva az egész. Tényleg jobb lenne külön táblákban tárolni egy egységes koncepció szerint, ahol egy-egy kapcsolótáblával meghatározhatnád a járulékos galériát, dokumentumtárat stb. stb. Ezt az "egy táblában tároljunk mindent" elgondolást már sokszor hallottam sok embertől, de igazán jól megtervezve és kiagyalva még nem láttam sehol (bár szóban már hallottam egészen jó ötletet is erről, de már elfelejtettem, hogy szólt a mese pontosan :) ). Nem tudom mi lenne ennek az egésznek előnye (szerinted), tán a keresésnél jól jöhet, de más téren meg sokat veszíthet vele a fejlesztő. Szerintem ne így csináld. :)
XML nem kell
Egyebkent meg azert lett igy megoldva, mert ugy tunt esszerunek, hogy a szoveges tartalmak egy tablaba tartozzanak. El akartam kerulni azt a kaotikus allapotot, hogy minden kulonbozo tartalomtipus egy tabla legyen. A kereses egyszerubb, egy ujfajta tartalomtipus felvetele szinten gyors es egyszeru.
Azert is fordultam ide, hogy par hasznos otletet kapjak meg mielott beleturnek a kodba. :) Hozzateszem, valamiert en az egy text mezo - serialize/unserialize parosra szavazok, de hatha kapok valamilyen igazan jo ellenervet.
a kettő kombinációja
Én úgy oldanám meg, hogy az eredeti táblát békén hagynám, és létrehoznék egy új táblát a kapcsolt tartalmakat nyilván tartására (szöveg azonosítója, kapcsolt tartalom azonosítója [,kapcsolt tartalom típusa]).
Igaz így két lekérdezést kell végrehajtanod. Bár a felesleges kéréseket, úgy megelőzheted, hogy ha a szövegek táblába teszel egy jelző értéket (default 0), melyet kapcsolt tartalom létrehozásakor igazra állítasz. Kiiratáskor pedig megnézed ezt az értéket....
TikuVoltam
Drupal megoldása
Azaz van egy node tábla, amiben mindenféle tartalomtípus azonos mezői tárolva vannak. Ilyenek pl: tartalom azonosítója (továbbiakban nid), léterhozó felhasználó azonosítója, tartalom típusa, cím, tartalom, létrehozás dátuma, módosítás dátuma.
Minden egyes tartalom típusnak, aminek ezen kívül más adatokat is tárolni kell saját táblája van aminek első mezője a nid, és minden egyéb mezőja a tartalom típus specifikus mező.
Ugye ekkor egy lekérdezés kell:
Remélem a szemlélet érthető volt.
Ez lesz a jo