ugrás a tartalomhoz

CMS rendszerben táblázatok tárolása MySQL-ben

t-moo · 2006. Okt. 3. (K), 14.49
Sziasztok!

Nekiálltam egy saját CMS-t írni. Az általános funkciókkal (blog, fórum, galéria, statikus oldal) boldogulok, de kitaláltam, hogy egy táblázat típusú oldalra is szükség lehet. A célkitűzés, hogy kereshető legyen, bővíthető, választható oszlopszámú, és lehetőleg egy-két táblában tárolható. Elkezdtem agyalni, hogy hogyan tudnám egy táblában letárolni a táblázataimat, de nem jutottam sokra.

Az eddigi legjobb ötletem az volt, hogy csinálok egy 30-40 mezős táblát - ennél sokkal több oszlopos táblázat nem kellhet. Aztán lenne egy mező, ami a típust tárolja: adat, fejléc vagy címke. A fejléc lenne az ékezetek nélküli, kisbetűs neve az oszlopnak (mint az táblában a mező), a címke az, ami a weblapon is megjelenne, az adat típusú rekordok meg magukat a táblázathoz tartozó adatokat tárolnák. Ez egy relatíve jól kereshető, és rendszerezhető megoldás, de kissé zavaró, hogy kb minden mezőnek text típust kéne adnom, hogy bármilyen célra használhassam, és nem tudom mennyire korrekt, hogy pl egy tíz oszlopos táblázat rekordjainál lenne 30 üres mezőm...

Másik ötletem az volt, hogy minden egyes táblázat típusú tartalomhoz nyitok egy arra specializált táblát, de ez is elég gány, és méginkább teleszemeteli az adatbázist.

Volt egy olyan tipp is ismerősöm részéről, hogy csináljak két táblát. Az egyikben a fejlécek, címkék lennének úgy, hogy a saját id-jükön kívül lenne egy oszlop id, valamint egy másik, ami a megfelelő táblázathoz linkeli őket; a másikban pedig a tartalom lenne hasonlóan rendezve azzal a különbséggel, hogy ott a megfelelő sorra is kéne egy id. Hát sztem ez is gáz és nehezen kereshető...


Az lenne a kérdés, hogy szerintetek hogyan kéne megoldani, vagy ha nincs tipp, akkor az itt felsorolt három közül melyik a leginkább használható?
 
1

táblázatok tárolása

Anonymous · 2006. Okt. 3. (K), 16.00
Szerintem a 30-40 mezős tábla ötlete nem állná ki "az idő vasfogát".
Csinálhatnál egy olyan adatbázistáblát, aminek két oszlopa lenne, az egyik a tábla azonosítója/neve, a másikban meg tömbben a táblázat mezői. Természetesen a serialize() paranccsal szöveggé alakítva.
Így akár még kereshető is lenne, de még kereshetőbb, ha bevezetsz egy harmadik oszlopot is, ahol csak a letisztított,kereshető szöveget tárolod.

Gyulus