A kovetkezo feladatot kaptam: Irni egy adatbaziskezelot PHP-ben, ugy hogy az adatok XML-ben tarolja. Amit tudnia kell: adatok kiiratasa, valtoztatasa, torlese, uj adat bevitele - es jo volna ha nem lenne nehez uj oszlopot berakni az adatbazisba.
Utananeztem, letezniek mindefele xml parserek, de sajnos eddig nem foglalkoztam xml-el, nem tudom hogy fogjak neki. - hogy/mivel a legegyszerubb ezt megoldani, ha nem szeretnek kulso kodot hasznalni ra? Esetleg tudtok adni egy-ket linket ahol ez erthetoen el van magyarazva, ha lehet peldakkal? SimpleXML-el mindez megoldhato?
koszonom :)
- 1969 megtekintés
Hozzászólások
( harlequin | 2010. március 8., hétfő - 23:23 )
A kovetkezo feladatot kaptam: Irni egy adatbaziskezelot PHP-ben, ugy hogy az adatok XML-ben tarolja.
@
Azért visszakérdeztem volna, hogy van -e ennek valami speciális oka?
A problema az, hogy az XML -t be kell rátntani a memoriába, és akkor lehet használni olyanokat mint simpleXml, DOM. Ha viszont túl nagy az XML akkor ezt nem lehet, mert meghaladja a memoria limitet. Ilyenkor parsert kell irni rá. (szerencsére nekem még sosem kellett ilyet) .
Szoval ha nagy méretü lesz az adatbazis akkor szvsz jobban jársz, ha valamilyen SQL -ben tarolod az adatokat es irsz egy felületet ami a lekérdezésekből XML -t csinál. pl PEAR -nek asszem van ilyen SQL2XML modulja.
http://pear.php.net/package/XML_Query2XML. Viszont ha relative kicsi, akkor valószínüleg jo a simpleXML.
- A hozzászóláshoz be kell jelentkezni
vegul SimpleXML lesz belole, csak leakadtam egy helyen ezert voltam kivancsi, hogy tenyleg nem lehet torolni node-ot, vagy csak nekem nem megy (csak nem akartam konkret valaszt - hogy en is gondolkodjak rajta - ezert kerdeztem csak annyit, hogy megoldhatoak-e a muveletek). Vegul kiderult hogy igen, csak kicsit furan kell azt a node-ot torolni (http://www.webmasterworld.com/php/3882927.htm).
Amugy ez egy programozasi teszt, nem eles dolog, nem lesz alatta komoly adatbazis (ez a spec. oka, hogy XML kell :) ).
- A hozzászóláshoz be kell jelentkezni
...meg eszembe jutott, hogy nem artana lockolni az xml -t amig dolgozol vele, hogy masik szalon ne tudjanak kozbe beleronditani.
- A hozzászóláshoz be kell jelentkezni
szinte biztos vagyok benne, hogy a megrendelő nem tudta hogy mit akar.
Ha olyan gépre kell adatbáziskezelés, ahol nincs más adatbáziskezelő, akkor javaslom az SQLite-ot.
Más megoldás: ArrayToXML, illetve XMLToArray osztályok használata: -bármilyen tömböt képes XML-be kiírni, illetve azt az XML-t képes tömbbé visszaolvasni.
Lockolás: írás joggal nyitod meg a file-t.
Tranzakció: a változtatásokat csak a php végén írod ki a merevlemezre.
Teljesítmény: nagy táblák esetén borzalmas, nincsenek indexek, nincsen cache.
Más megoldás: rendes adatbáziskezelőt használsz (esetleg SQLite-ot), de írsz egy exportáló és egy importáló függvényt, amivel legenerálhatod illetve betöltheted a szükséges adatbázist.
- A hozzászóláshoz be kell jelentkezni
A simple teljesen jó ebben az esetben.
Arra érdemes az ilyen feladatoknál figyelni, hogy végiggondold, mely funkciókat kell kidolgoznod és egységbe zárnod az adatcseréhez, és mik lesznek azok, amiket ad hoc xml eléréssel képzelsz el.
- A hozzászóláshoz be kell jelentkezni
kis adatmennyiségre az sqlite megfelelő, ha kell valami xml-ben, azt ki lehet exportálni. Nagy adatmennyiségnél az XML tárolás butaság, keresni benne erőforrásigényes, lassú.
- A hozzászóláshoz be kell jelentkezni
ez igaz, de a projekt igazi celja nem az hogy adatbazist hasznaljak xml-ben, hanem hogy megtanuljam kicsit kezelni az xml-t phpbol - ezert van eroltetve az xml.
Mindenkinek koszonom a segitseget, van egy masik fele is a problemanak, azzal meg lehet hogy jelentkezem :)
- A hozzászóláshoz be kell jelentkezni