@t[Így készítek adatbázist]~~META:date created = 2022.05.07., 14:02~~ Elég gyakran készítek adatbázist, ami azt illeti. A leggyakrabban ideiglenes felhasználásra: van egy halom adatom, amiket át akarok alakítani valami mássá, és ehhez adatbázisba szervezem őket, amit aztán átalakítok – az is gyakori, hogy több lépcsőben, közbeeső adatbázisok felhasználásával. Nálam az adatbázis mindig plaintext file (egy vagy több). Semmit sem tudok ilyenekről, mint MySQL, és nincs is kedvem megtanulni. Csak plaintext file (persze már régóta unikódos), valamilyen speciális markuprendszerrel, amit egyedileg ahhoz az adatbázishoz ötlök ki, menet közben, vagyis a legritkább esetben vacakolok bármiféle előzetes tervezgetéssel. Elkezdem használni, és ha szükség van valamilyen bővítésre, akkor azt később belerakom. Hozzálátok megírni a szöveget vagy a már meglevőt ellátni az adatbázis számára szükséges markupokkal, és amikor már van valamennyi, akkor írom meg a feldolgozóprogramot. Ha később kiderül, hogy más markupok is kellenek, beteszem őket a szövegbe és beleírom a programba. Egy példa a Szivárvány tárgymatatója. Ez több fázison át készült. Először is vannak a blogcikkek, amik egy könyvtárban külön szövegfile-okban vannak, és tartalmaznak egy Vicky-makrót, ami a címkéiket listázza. Meg van egy, ami a címet tartalmazza. A Vicky szintaxisát részben készen kaptam, részben magam alakítottam ki évekkel ezelőtt. `@cim[cikkcím] … … `@cimkek[címke1 címke2 címke3…] Mivel ez egységes, a file-okhoz nem kellett nyúlnom, csak írtam egy feldolgozóprogramot AutoItben, ami végigment rajtuk és kitermelte az adatokat. Át is rendeztettem őket, címke szerint csoportosítva, és ezt készítettem: címke1 TAB cikkcím1|cikkcím2|cikkcím3… címke2 TAB … A tabot meg a függőleges vonalat ötletszerűen választottam, az volt a lényeg, hogy ne szerepeljenek a címek vagy a címkék szövegében. Ezzel még nem voltam készen, mert volt több száz cikk, amiknek mindmáig nincsenek címkéik. Ezeken végigmentem és kiírtam a címkéiket egy külön file-ba. Aztán írtam egy újabb programot, ami ezt a kettőt összerakta, ebből: (egyik file) politika TAB //felsorolva 80 cikk címe// (másik file) politika TAB //81. cikk címe// politika TAB //82. cikk címe// …ebbe: politika TAB //felsorolva 82 cikk címe// Igen ám, de egy tárgymatatóba ugye oldalszámok is kellenek. Amiket nem lehet fixen odaírni, mert csinálok valami változtatást, egy cím átkerül a következő vagy az előző oldalra, és megborul akár száz oldalszám. Ezért két file-ból rakom össze: a másik a tartalomjegyzék, amit minden változtatás után kimásolok a Wordből. Ez ugye így néz ki: cikkcím TAB oldalszám A belőlük készítendő lista első közelítésben így festene: címke TAB oldalszám, oldalszám, oldalszám… Aztán rájöttem, hogy nem így akarom, a címek is legyenek ott, mert többet mond, az olvasó egy adott cikket már olvasott és ráismer a címére a tárgymatatóban, akkor ahhoz már nem lapoz vissza. Tehát: címke TAB cím oldalszám, cím oldalszám… Innen már csak egy lépés ezt fölcserélni html outputra, hisz eszem ágában sincs kézzel megformázni. **;;r:címke;;** → //cím// **oldalszám,** //cím// **oldalszám…** A blogcikkek szövege is félig-meddig ilyen önkényesen, egyedileg kialakított markuppal készül: mivel a Vicky eredetileg Dokuwiki, annak a teljes jelkészlete rendelkezésre áll, de vannak saját bővítéseim, például itt följebb úgy csináltam piros feliratot, hogy a saját ;`;r:piros;; színezőmet használtam. A Vicky makrónyelvét is teljesen átírtam. A Ninda-programomat tartom adatbázis-kezelési munkásságom eddigi csúcsának, de nem abban, hogy milyen jó markupnyelve van – nincs neki, egy totál átlagos nyelvike, voltaképpen a Vicky nyelvének egy részhalmaza, mert eredetileg az volt a tervem, hogy a Vicky motorját használom a megjelenítésére, de végül egy attól teljesen független programot írtam –, hanem a belső adatábrázolás rendszerében. A programkód elég kusza már, három év után, de az adatokban rend van. (Nincs, de jól hangzik!) Van egy óriási tömböm, ami tartalmazza a regényt mindenféle szempontok szerint szétcincálva, sómironként külön-külön az egyes elemek: idézet szövege, forrása, időbélyegző elemeire szedve, a szöveg érintetlen formában és átalakítva, címkék külön, és plusz egy csomó további adat, statisztikai jellegűek. Meg még mindenféle tömbjeim vannak. Ezt az egészet a program //azon sürgiben// termeli ki a könyv szövegéből, előállítja belőlük a megadott paraméter szerinti outputot, aztán az egészet elhajítja, hogy a következő hívásnál elölről kezdje. Egyfajta markupnyelvnek tekinthetők a php-tömbök is, amikor magában a programkódban vannak leírva. A mostani projektemnél, mint oly sokszor, nem kézzel írom a programszöveget – legalábbis a tömb kódját –, hanem egymást követő programok sora állítja elő. Saját Youtube-ot csinálok magamnak, mert eluntam, hogy az igaziról már sok-sok felvétel eltűnt a kedvenceim közül – nekem persze megvannak itthon –; ami fönt van, azt nagyjából csak lejátszási listákba lehet rendezni, és rendezgesse őket a kórság százféle listába; és az utóbbi időben a Youtube elkezdett mindenféle halál érdektelen dolgokat javasolgatni melléjük. Hol vannak már a régi szép idők, amikor a NANDO-videóim alatt egytől egyig további NANDO-videók sorakoztak – vagy akár a későbbi szép idők, amikor már egész sor előadót hallgattam, de a felvételeik alatt kizárólag a kedvenc videóim jöttek. Most mindenféle hülyeség is keveredik közéjük. No, szóval csinálok magamnak sajátot. Írtam egy programot, ami az itthon tartott zenefelvételeimet kilistázza php-tömbbe, mindegyik kapott egy egyedi ID-t, és hozzá a file-név, méret, dátum, elérési út, szép sorban. Írtam fastruktúra-megjelenítőt, ami könyvtárfa szerint listázza őket és lejátssza, amit megnyomok. Most a címkézésnél tartok, kiírtam a leggyakoribb neveket, pár dalcímet, albumok címeit, és össze fogja rakni a listát azokról a videókról, amiknek a file-nevében benne van valamelyik megadott címke. Ezzel a munka egy részét automatizálom, aztán írok címkekezelőt, amivel rátehetem a további címkéket a file-okra, meg címkelistázót, ami adott címkék szerint listáz. És akkor a lényegi része kész lesz. De ez mind csupa szövegfeldolgozás. Abban pedig jani vagyok. @blogf[számtech adatbázisok]