powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Порядок нормализации юзеров
4 сообщений из 4, страница 1 из 1
Порядок нормализации юзеров
    #38738027
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть один веб-сайт на обслуживании, где есть много разных каналов трафика, много регистраций пользователей, причем они и те же пользователи могут использовать:

1) разные ip
2) разные браузеры => разные куки, серверные сессии
3) разные устройства (комп на работе, комп дома, ноутбук жены, смартфон ...) => разные куки, серверные сессии, разные ip
4) разные аккаунты => разные userId для залогинившихся

на сервере все это логируется в общую таблицу и теперь стоит задача написания обработчика (хотелось бы на чистом sql, но если никак, то с примесью клиентской части), который запускается по нажатию на кнопке перед расчетом аналитики, который приведет весь этот зоопарк к общему знаменателю, проставив синтетический faceId:

Код: sql
1.
actId, actTag, actIp, actCookieId, actServSessId, actUserId, actFaceId



где faceId это некий синтетический общий знаменатель, который надо каким-то образом вывести сопоставив все имеющиеся идентифицирующие кусочки информации.

Метод сопоставления прост: например, если есть часть действий с ip 123.123.123.123 и есть часть действий с ip 125.125.125.125, но у всех этих действий стоит userId = 4590, потому что во всех этих случаях посетитель работал под одним и тем же аккаунтом, то мы можем сделать вывод, что это один и тот же faceId

Если например есть часть действий без userId, а часть с userId и у всех этих записей один и тот же cookieId, значит мы можем сделать вывод, что первая часть действий без userId и эта часть с userId являются одним и тем же faceId

и т.д.

Но с ip есть и "подлянки"...:

С одного ip могут быть реально разные люди (разные faceId).

А если включить паранойю, то на одном и том же браузере с одним и тем же cookieId, serverSessionId могут быть два и более разных пользователя, но у них явно будут разные userId, но до того как они не залогинились отследить это будет невозможно, разве что по факту логаута... actTag = user.logout.4510 Но это уже реально паранойный вариант...))

Чего прошу:
посоветуйте в какой последовательности проводить нормализацию вывода faceId
и в какой момент и на основании чего генерить faceId???


Последовательность появления номеров всегда такая:
1. ip
2. serverSessId
3. cookieId
4. userId - до этого может и не дойти вообще, если юзер не логинился

при этом и "сила" кусочка в убывающем порядке: userId самый сильный, cookieId послабее, серверные сессии вообще могут перезапускаться при каждом новом входе в браузер, ну а ip может быть вообще динамическим, в том же кафе или ином публичном вайфае или просто мобильный интернет...

у меня реально что-то мозг ТУПИТ в какой последовательности проводить нормализацию.... ((((
...
Рейтинг: 0 / 0
Порядок нормализации юзеров
    #38738063
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,

я бы делал по порядку убывания силы связки.

1. все у кого есть явный юзер_ИД присвоить его в ФейсИД
2. затем все остальные --- взять cookieId и искать
совпадения с записями которые зафиксировны в пункте 1.
если есть совпадение -- позаимствовать оттуда ЮЗЕРИД и ФЕЙСИД
3. затем все остальные -- подускивать совпадения по actServSessId
4. потом по ИП.
5. оставшиеся -- ну просвоить юзерИД равно ФаисИД равно -1
6. выпить пива.
...
Рейтинг: 0 / 0
Порядок нормализации юзеров
    #38738078
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcLumix,

я бы делал по порядку убывания силы связки.

1. все у кого есть явный юзер_ИД присвоить его в ФейсИД
2. затем все остальные --- взять cookieId и искать
совпадения с записями которые зафиксировны в пункте 1.
если есть совпадение -- позаимствовать оттуда ЮЗЕРИД и ФЕЙСИД
3. затем все остальные -- подускивать совпадения по actServSessId
4. потом по ИП.
5. оставшиеся -- ну просвоить юзерИД равно ФаисИД равно -1
6. выпить пива.

Спасибо за вариант решения! Завтра протестируем и отпишусь чёкаво.. насчет п.6 это не к нам))))) трезвенники, корпоративный абонемент в элитный фитнесс и т.п.)))
...
Рейтинг: 0 / 0
Порядок нормализации юзеров
    #38738931
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче, все отлично получилось. спасибо за порядок нормализации!!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Порядок нормализации юзеров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]