ugrás a tartalomhoz

MySql adatbázis műveltetés JavaScript-tel

s_volenszki · 2007. Ápr. 29. (V), 09.56
Sziasztok!

A napokban az ebben a topic-ban lefolytatott diskurzus eredménye képpen felvetettük a lehetőségét egy kliens oldali eljárás gyűjteményre és egy szerver oldali php osztályra, ami együtműködve lehetővé tenné a mysql adatbázis műveltetést szerver oldali programozási ismeretek nélkül.

Elég sokat gondolkoztam ezen a gondolaton, és én is oda jutottam, hogy ha megfelelően konfigurálva van egy adatbázis műveltető php osztály, akkor kliens oldalról tulajdonképpen minden elvégeztethető javascript-tel. Továbbá ha az adatbázis kapcsolódásához szükséges információk szerver oldalon vannak include-olva, akkor elképzelhető nem csak read only módban az alkalmazás.

Azomban mielőtt 0-ák és 1-ek millióit állítanánk csatarendbe, gondolkozzunk el egy ilyen rendszer gyakorlati alkalmazhatóságán.

Előnyök és hátrányok kendőzetlenül.

s_volenszki
 
1

AJAX alkalmazás

janoszen · 2007. Ápr. 29. (V), 10.57
Tfh. valaki egy AJAX orientált alkalmazást ír és tényleg egy rakás adatra van szüksége minél gyorsabban. Szerintem, ekkor máris nagyon jó lenne.

Ami már korábban elmondtam, szerintem, a tárol a eljárások használata lesz a megoldás de még így is kérdéses, hogy legalább valamiféle autentikációt/session kezelést nem kellene-e megvalósítani.

Szerintem, ez úgy működhez, hogy a PHP annyit csinál, hogy kiszolgálja az adatbázis fele menő kéréseket és a sessionöket kezeli. Ha adatbázisnak tárolt eljárásba megy a kérés, akkor plusz egy paraméterként csatolja a belépett felhasználó nevét.

Ezzel egyben meg is van oldva a gyakran előkerülő login-probléma. Ezek után már csak SQL-ben és JS-ben kell szorgalmasan programozni. Aki akarja, az meg tovább fejleszti a dolgot.

ui. végre egy agysejt-mozgató téma... :)
2

ördög ügyvédje leszek most :)

amonrpg · 2007. Ápr. 29. (V), 11.05
Szóval az ötlet elgondolkodtató.
Azonban, ahol én problémákat látok:

- a flood-kontroll mindenképpen szerveroldalon kell legyen (vagy PHP vagy tárolt eljárásban), mivel a JS bármikor megnézhető, egy kezdő javascriptes is képes visszadebugolni a forgalmat, elég egy Firebug hozzá
- a tárolt eljárások eléggé DB specifikusak
- a PHP-t (vagy egyáltalán a szerveroldali nyelvet) éppen az előző pont miatt érdemes legtöbbször közbeszúrni
- ha ennyire vékony lesz a PHP-s réteg, akkor érdemes elgondolkodni valami gyorsabb, PHP-nál kisebb memóriaigényű szerveroldali technikán (pl.: egy C library, apache modulként letolja a dolgot, nagyságrendekkel gyorsabban, s mivel nincs PHP-s logika, csak interface, ezt meg lehet csinálni C-ben is).
- kérdés: mennyiben különbözik ez mondjuk attól, amit pl. a xajax, vagy amit a protojax valósít meg? azon túl, hogy ezek vastagabb PHP-s réteget is engednek?
- mennyiben nyújtana ez többet, mint egy egyszerű php connect-query-json_encode-exit file?

ps.: nem kötekedés, csak ezek jutottak eszembe első körben :)
3

Miért jó ez?

Ajnasz · 2007. Ápr. 29. (V), 11.19
Miért jobb kliens oldalról elküldeni egy komplett sql lekérdezést, ha úgyis ott a szerver oldal? Sokkal nagyobb forgalomra van szükség a kliens és a szerver között, raádásul feleslegesen, hiszen valahol úgyis meg kell írni azt a lekérdezést, akkor miért a kliensnél, ahol bárki módosthatja azt? Valamint miért jó az, ha a user szerver oldali ismeretek nélkül áll neki szerver oldalon dolgozni? Meg lehet tanulni azt a néhány függvényt, ami szükséges ahhoz, hogy elboldoguljon egy adatbázissal. A dolog egyetlen előnyét sem tudom elképzelni..
4

Gyakorlati alkalmazás.

s_volenszki · 2007. Ápr. 29. (V), 12.59
Hasonlóan gondolkozom mint ti, ezért pontosan ugyan azt mondom, hogy aki kliens oldalon képes egy ilyen js kódot kezelni és értelmezni, annak nem probléma szerver oldalon php-t (vagy akármi más nyelven) írni.

Továbbá én is úgy gondolom, hogy a témában szükséges a kliens szerver modell ismerete! De mégis! Lehetnek olyan alkalmazások, ahol nem lenne szükséges a szerver oldali programozás tudás, de mégis van valamilyen irányított adatforgalom?

Erősen agyalok egy minta folyamaton, de mindíg oda jutok, hogy kizárólag alkalmazás specifikusan venném hasznát egy ilyen rendszernek, viszont onnantól kezdve meg nincs jelentősége a rugalmasságának.
5

Használtunk hasonlót

siposa · 2007. Ápr. 29. (V), 14.21
Mi használtunk hasonlót egy projektünkben és szerintem nem váltotta be a hozzá fűzött reményeket.

1. Mivel minden lekérdezést nem volt praktikus JS oldalra pakolni, ezért vegyesen fordultak elő szerver és kliens oldalon, ami karbantartás szempontjából egyre viccesebb lett.

2. Jogosultságkezelés gyakorlatilag csak SQL szerver szinten oldható meg, ami nehézkessé tesz a telepítést, és nem is elég rugalmas (pl. rekord szintű jogok esetén bukta van)

Szóvan részemről az általános, JS oldali SQL matatás kilőve.
6

Jogok

janoszen · 2007. Ápr. 29. (V), 17.41
Hú, sok az ellenző hozzászólás. Azért gondoltam erre, mert egyrészt a kezdők kérdéseire ezt be lehetne dobni másrészt pedig lehet, hogy valakinek tényleg ennyi kell.

A másik: én SQL szinten oldottam meg a jogosultság kezelést már csak azért is, mert az volt az első lépcső. Már SQL-en ne lehessen túljutni...

Ami a C libet illeti, lehetne, de hány olyan szervert ismersz, ahol lehet ilyesmit futtatni?
7

Zend_Db_Table + js

toxin · 2007. Ápr. 29. (V), 17.57
összeházasítási kisérlete http://naneau.nl/2007/04/17/introducing-jstable/ , esetleges gondolatébresztőnek :)

üdv t
8

Necces

kris7topher · 2007. Ápr. 30. (H), 13.32
Necces lenne megcsinálni, modnjuk talán multiuser SQL környezetben, csak tárolt SQL eljárásokat engedélyezve, vagy csak olvasási joggal, nem fotos adatokhoz, .... talán. De a megoldás még neccesebb. Vagy kell egy PHP layer alá (sima ügy, minden probléma megoldva, a security vizsgálható) de valódi megoldás egy fsockopen szerű js-függvénytár lenne (szerver réteg nélkül) (ISTENEM, MELYIK BRÓZER ENGEDÉLYEZNÉ?!! nah ilyen gonosz ötlet is csak az én agyamban fordul elő). Meg ekkor a js és a mysqld úgy kommunikálna, mint a mysqlc <-> mysqld. Talán ha a szerveren HTTP kéréssel parancssort lehetne futtatni, talán. De egy még nagyobb security problémába ütközénénk, szóval AJAX nélkül nagyon necces.

Más:
Ha muszály kliens oldalon csinálni (néha lehet, hogy elkerülhetetlen, a php oldal vékonyan tartásához), akkor egy js-től különböző nyelvvel lehet hogy jobb eredményt kapunk, amit a szerver (is) parszol. Így az adat útja kliens oldali program -> szerver értelmezi, végrehajtja -> kliens oldal is értelmez, adatot megjelenít. Vagyis kliens oldalon megírva, egy helyen átlátható kódot kapnánk, a php réteg pedig tényleg csak az értelmezés egy részét végzi. Vagy apacs modul, és akkor még jobb. Meg js értelmező helyett mozilla xpi (ie nem igazi brózer, bár activeX-szel ar is szép megoldás lehetne). szépen elkalandoztam a lényegtől, de végülis ez is megoldja a szerver <-> kliens között különdbégek feloldását...