ugrás a tartalomhoz

web login user history

Gl3am · 2014. Feb. 1. (Szo), 21.22
Szeretnék user agent és ip-t tárolni adatbázisban amikor a felhasználó bejelentkezik. A legoptimálisabb az lenne, ha mindig az utolsó 10 bejelentkezés adatai tárolódnának.

Nem sikerül elképzelnem, hogy milyen táblára és kapcsolatokra lenne szükségem. Mi a legjobb gyakorlat erre?

Kösz!
 
1

kell egy tábla bármilyen

szabo.b.gabor · 2014. Feb. 1. (Szo), 22.33
kell egy tábla bármilyen meglepő. felhasználó azonosító, ip cím, dátum. esetleg sikeres belépés, vagy sem.

én mondjuk inkább x napig tartanám meg a belépési adatokat, vagy legalább z darab és legalább x nap.

aztán néha törlöd. vagy bejelentkezéskor, vagy cronból.
2

Szia,pont ezt szerettem

Gl3am · 2014. Feb. 2. (V), 05.55
Szia,

pont ezt szerettem volna elkerülni. Ha jól gondolom akkor ez valahogy így nézne ki:

id   | user_id   | ip      | country | create

1    | 5         | 0.0.0.0 | Hungary | 2014-01-01 13:01
2    | 4         | 0.0.0.0 | Hungary | 2014-01-01 14:25
3    | 5         | 0.0.0.0 | Hungary | 2014-01-02 11:00
4    | 5         | 0.0.0.0 | Hungary | 2014-01-02 11:05
5    | 8         | 0.0.0.0 | Hungary | 2014-01-03 09:50
6    | 4         | 0.0.0.0 | Hungary | 2014-01-03 12:20
7    | 4         | 0.0.0.0 | Hungary | 2014-01-03 12:30
8    | 4         | 0.0.0.0 | Hungary | 2014-01-03 12:40


Ha minden aktív felhasználónak csak az utolsó 10 bejelentkezési előzményét tárolom, ez akkor is nagyon meghízott tábla lesz.

A mega.co.nz -n bejelentkezve van egy history fül, ahol megnézhetem az utolsó 250 login előzményemet:

Browser, IP-address, Country, Most recent activity

Firefox on Linux, 0.0.0.0, Hungary, 2014-01-01 11:11

Ők vajon hogyan oldották meg?

Tehát még mindig ott tartok, hogy nem tudom hogyan kéne ezt jól csinálni. :)


Szerk.

Nagyon hajlok arra, hogy fájlba írok és onnan is fogom kiolvasni.

log/
└── login
├── name##kukac##example.com
└── name##kukac##example2.com


A kiolvasás annyit jelent, hogy szeretném a usernek is megjeleníteni táblázatban - GET /history

Erről mi a véleményetek?
3

pont ezt szerettem volna

Hidvégi Gábor · 2014. Feb. 2. (V), 12.19
pont ezt szerettem volna elkerülni
Miért? Az indexelésről hallottál már?

Nagyon hajlok arra, hogy fájlba írok és onnan is fogom kiolvasni.
Ez milyen előnnyel jár az adatbázissal szemben?
5

Fáradt voltam már hajnalban

Gl3am · 2014. Feb. 2. (V), 18.54
Fáradt voltam már hajnalban és sajnos extra flúgos vagyok arra, ha "fölöslegesen" terhelem az adatbázist. Ezért szaladtam bele a fájl ötletbe.:)

Ez milyen előnnyel jár az adatbázissal szemben?


Pont ezért nyitottam ezt a témát, hogy segítséget kapjak a lehető legoptimálisabb megoldás megtalálására. Tehát nem tudom, hogy egyáltalán jár-e előnnyel ha db helyet fájlba írom. A terv valami olyasmi volt, hogy loginnál megnyitom a felhasználó saját log/login fájt, ha több mint 9 sor, akkor az utolsót törlöm és az aktuális adatokat az elejére írom. A /history-t abból szolgálom ki. Tehát ezzel abszolút levettem a db-ről a terhet, viszont nem biztos, hogy fájlal költséghatékonyabb lesz, viszont egyszerűbb kivitelezni. :)

Még mindig úgy vagyok vele, hogy lehet marad a fájl, viszont a kérdésemre megkaptam a választ. Köszönöm mindenkinek aki itt járt és beírt. :)
6

Sosem szabad előre

Hidvégi Gábor · 2014. Feb. 2. (V), 19.41
Sosem szabad előre optimalizálni, márpedig ez kimeríti ezt az esetet, sebességproblémákkal mindig akkor kell foglalkozni, ha felmerülnek. Egy adatbázisból mindig könnyebb kinyerni adatokat, mint fájlokból, mert egyszerűen tudsz keresni, szűrni, rendezni.
7

Nem előre optimalizáltam,

Gl3am · 2014. Feb. 2. (V), 21.32
Nem előre optimalizáltam, hanem kerestem a megfelelő megoldást :P

Végül úgy döntöttem, hogy db-be kerül. Nem egy bonyolult dolog, tehát bármikor megpiszkálhatom ha valami nem klappol.

Köszönöm a segítségeteket!
8

Megfelelő

Poetro · 2014. Feb. 2. (V), 22.31
Mi alapján megfelelő? Mert az adatbázis ebben a formában triviális megoldás, és ha majd probléma lesz vele, lecseréled valami másra (mondjuk egy másik adatbázisra).
9

Ha megnézed a nyitó postot,

Gl3am · 2014. Feb. 2. (V), 23.03
Ha megnézed a nyitó postot, akkor láthatod, hogy eredetileg adatbázisba szántam ezeket az adatokat. Viszont számomra az nem volt triviális, hogy elég egy tábla, aztán szórjam bele az adatokat. Mivel nem jutott semmi épkézláb ötlet az eszembe, így megkérdeztem, hogy hogyan csináljam, és reménykedtem benne, hogy majd valaki megmondja a tutit vagy mutat egy adatbázis modelt erre. Nem tetszik ez a megoldás még akkor sem, ha ez a járható út. De mint írtam, úgy fogom csinálni ahogy szabo.b.gabor ajánlotta.
4

Az adatbázisok pont arra jók,

bamegakapa · 2014. Feb. 2. (V), 12.50
Az adatbázisok pont arra jók, hogy sok adatot is tudsz bennük tárolni. Pármillió rekord nem lehet probléma.

Ha egymilliónál is több felhasználód van, akkor pedig már sokkal komolyabb problémákkal is meg kellett küzdjél.