UserStorage: Oddělení identifikátoru od dat

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
h4kuna
Backer | 740
+
0
-

Ahoj,
zajímalo by mě zda někdo řeší situaci, kdy máte přihlášenou spoustu lidí. A jeden člověk může být přihlášen na více zařízeních. Prohlížeč v mobilu, aplikace v mobilu, aplikace v tabletu, prohlížeč na domácím PC, prohlížeč na pracovním notebooku. Zkrátka N identit pro jednoho uživatele.

Co je za potíž:

  • téměř všechno je duplicitní, třeba až 5×, sjednocením bychom snížili zaplnění uložiště (redisu)
  • druhá věc je že když si uživatel něco (email, jméno, nastavení) změní v jednom zařízení tak sesynchronizovat ostatními

Stávající implementace funguje, ale je to celkem overkill.

Nápad by byl napsat vlastní UserStorage, který by v session držel pouze userId a ostatní by se dotáhlo podle userId, taková cache s tagem.

Jiné řešení?

Editoval h4kuna (26. 1. 2017 8:14)

hrach
Člen | 1838
+
0
-

@h4kuna uz x let na to pouzivame jednoduche reseni – v identity mame jen user id a kazdy request ho taha z db. Prakticky se nejedna o zadnou narocnost a nemusis resit vsechny problemy, ktery si prave zminil.

h4kuna
Backer | 740
+
0
-

Místo databáze bych rád viděl redis, kde si dokážu ohlídat když uživatel něco změní, aby se změnil i redis. Ale aktuální implementace UserStorage neumožňuje takové rozšíření. A než se do toho pustím tak jsem se chtěl znát další možnosti.

hrach napsal(a):

Prakticky se nejedna o zadnou narocnost…

Tím myslíš že to databáze nepozná?

Marek Bartoš
Nette Blogger | 1263
+
0
-

@hrach nepřihlášené uživatele bez user id máte v session storage uložené celé a po přihlášení data přesouváte?

Editoval Mabar (26. 1. 2017 8:52)

hrach
Člen | 1838
+
0
-

Prakticky se nejedna o zadnou narocnost…

Tím myslíš že to databáze nepozná?

@h4kuna na strance je vetsinou 10+ dotazu, mnohdy i 40. Jeden dotaz dle primarniho klice zasadni problem nezpusobi. Samozrejme zalezi na mnoha faktorech (velikost webu, velikost dat u usera, moznost partial loadu entity, etc.).

@Mabar jo, to je jina; nas se to netyka. Ale asi bych to resil tak, jak pises. A cele bych to obalil asi nejakou proxy, ktera by to cetla bud z entity/userstorage.