|
проектирование БД
|
|||
---|---|---|---|
#18+
vmag бабушкин зайчик команда - это набор юзеров (включая владельца) и вот у них есть л/п, а команде то он зачем алилуя... не прошло и недели как дошло... раз 5-10 перечитал топик ? а что дошло то? очевидно было всегда ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 00:45 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
fkthat, я верно все понял? роль правильно будет в этой же таблице PlayerTeams хранить? А token также в Credentials может быть или для него отдельную таблицу лучше, типа Sessions? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 12:30 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
vmag, а причем админы бд? под админами команды я подразумевал персонал команды, у которых только возможность подтверждать игрока в команду, ну и еще какие либо подобные действия ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 12:36 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi fkthat, я верно все понял? роль правильно будет в этой же таблице PlayerTeams хранить? А token также в Credentials может быть или для него отдельную таблицу лучше, типа Sessions? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 12:41 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi а причем админы бд? под админами команды я подразумевал персонал команды, у которых только возможность подтверждать игрока в команду, ну и еще какие либо подобные действия Хорошо... - база пустая, кто первоначально внесет капитанов-админов (и будет это делать потом) при наличии интерфейса с правами доступа ? - кто будет вносить игроков: фио, год рождения, и прочую лабуду... если половина из них откажется это делать? - кто будет подтверждать игроков в команду и подобные действия, если капитан скажет идите вы все в .ОПУ, у меня тренировки с 6 утра до ночи... Хотя споры тут похоже бесполезны, делайте, практика покажет... и я бы вернул _id в TeamPlayers как было у вас изначально: Это не тот случай чтоб экономить 5 байт на строку, похоже вы частенько будете ковырять эту таблицу, по этому стоя на суррогатном ключе будет проще идентифицировать запись перед DELETE и UPDATE ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 13:16 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
vmag - база пустая, кто первоначально внесет капитанов-админов (и будет это делать потом) при наличии интерфейса с правами доступа ? Я предполагал, что пользователи сами будут регистрироваться. Зарегистрировался как "администратор команды" - зарегистрировал свою команду, назначил капитана и т.д. Зарегистрировался как "игрок" - добавляешься в команду. vmag - кто будет вносить игроков: фио, год рождения, и прочую лабуду... если половина из них откажется это делать? Ну отказался регистрироваться - значит ты не в системе) Либо регистрирует "администратор команды", он же менеджер vmag - кто будет подтверждать игроков в команду и подобные действия, если капитан скажет идите вы все в .ОПУ, у меня тренировки с 6 утра до ночи... Подтверждать будет юзер с правами "администратор команды", обычный менеджер, как писал выше, у которого это часть его обязанностей заниматься подобными делами vmag и я бы вернул _id в TeamPlayers как было у вас изначально: Это не тот случай чтоб экономить 5 байт на строку, похоже вы частенько будете ковырять эту таблицу, по этому стоя на суррогатном ключе будет проще идентифицировать запись перед DELETE и UPDATE Понял, верну тогда ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 13:42 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi yozzi fkthat, я верно все понял? роль правильно будет в этой же таблице PlayerTeams хранить? А token также в Credentials может быть или для него отдельную таблицу лучше, типа Sessions? Да, точно, vmag натолкнул на мысль, должен быть наверно, и какой то общий пользователь - админ системы, и который к командам вообще отношения не имеет, соответственно, он ведь не будет в таблице TeamUsers, как тогда быть? Или не должен...) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 13:55 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
vmag по этому стоя на суррогатном ключе будет проще идентифицировать запись перед DELETE и UPDATE там идентификация по uid + team_id, она не подводит ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 14:02 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi Да, точно, vmag натолкнул на мысль, должен быть наверно, и какой то общий пользователь - админ системы, и который к командам вообще отношения не имеет, соответственно, он ведь не будет в таблице TeamUsers, как тогда быть? Или не должен...) Вы просто стоите на пороге всего этого, так сказать - открыли дверь... С опытом вы поймете некоторые моменты: - все хотят чтобы в БД было как можно больше информации, но никто не хочет её туда вбивать, это можно сделать только выкрутив кому-то руки в прямом и переносном смысле этого слова и это может сделать только Заказчик (если он есть) иначе придется самому закатывать рукава и доказывать нужность и гениальность... - если кроме вас эта бд никому не нужна (никто не лоббирует, не финансирует и нет перспектив на это), то относитесь к процессу по проще, - как к учебному для самого себя, ну или настраивайтесь, что вы сами будете платить за хостинг (как минимум), если захотите покинуть пределы localhost и найти спонсоров... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 15:23 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
vmag yozzi Да, точно, vmag натолкнул на мысль, должен быть наверно, и какой то общий пользователь - админ системы, и который к командам вообще отношения не имеет, соответственно, он ведь не будет в таблице TeamUsers, как тогда быть? Или не должен...) Вы просто стоите на пороге всего этого, так сказать - открыли дверь... С опытом вы поймете некоторые моменты: - все хотят чтобы в БД было как можно больше информации, но никто не хочет её туда вбивать, это можно сделать только выкрутив кому-то руки в прямом и переносном смысле этого слова и это может сделать только Заказчик (если он есть) иначе придется самому закатывать рукава и доказывать нужность и гениальность... - если кроме вас эта бд никому не нужна (никто не лоббирует, не финансирует и нет перспектив на это), то относитесь к процессу по проще, - как к учебному для самого себя, ну или настраивайтесь, что вы сами будете платить за хостинг (как минимум), если захотите покинуть пределы localhost и найти спонсоров... Да это и так "для личного развития", так сказать, но просто хочется, чтобы было все по уму, ну или приближенно к этому) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2021, 16:00 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
Добрый день! Расширил схему бд, подскажите, верно ли я сделал? В Requests планирую хранить заявки игроков на добавление в команду (не уверен, что связь должна быть с Team_players) и заявки команд на участие в турнирах. Еще хочу добавить Trainings, при этом игроки должны подтверждаться на тренировки, но не могу пока придумать, как сделать... т.е тренер команды создает тренировку в заданное время, а игрок должен подтвердить свое участие в этой тренировке, аналогично с матчем ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 16:38 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
email и phones - это отдельные таблицы location - это не город, а полный address (тоже отд. таблица) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 17:14 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
бабушкин зайчик email и phones - это отдельные таблицы location - это не город, а полный address (тоже отд. таблица) я пока не думал полные адреса вводить, думал ограничиться городом, без улиц и т.д бабушкин зайчик email и phones - это отдельные таблицы эм... а для чего?) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 18:59 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi эм... а для чего?) потому что они не только у юзеров бывают потому что их бывает несколько потому что искать проще ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 20:14 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi я пока не думал полные адреса вводить, думал ограничиться городом, без улиц и т.д когда передумаете, придётся переделывать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 20:15 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
бабушкин зайчик yozzi эм... а для чего?) потому что они не только у юзеров бывают потому что их бывает несколько потому что искать проще понял, спасибо) а можете подсказать насчет: В Requests планирую хранить заявки игроков на добавление в команду (не уверен, что связь должна быть с Team_players) и заявки команд на участие в турнирах. Еще хочу добавить Trainings, при этом игроки должны подтверждаться на тренировки, но не могу пока придумать, как сделать... т.е тренер команды создает тренировку в заданное время, а игрок должен подтвердить свое участие в этой тренировке, аналогично с матчем ... |
|||
:
Нравится:
Не нравится:
|
|||
02.06.2021, 20:32 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi Давайте попробую объяснить, почему я так решил сделать, ну и вобщем задачу. Я разрабатываю информационную систему для команд и игроков , и хотел бы, чтобы можно было регистрировать и новые команды и новых игроков, ну и соответственно входить под ними в систему, у команды свой логин для входа, у игрока - свой. Можно конечно добавить на форме входа выпадающий список «войти как...» и в зависимости от этого решать кто это, игрок или команда, но мне это решение не нравится. Жирным выделена первая и основная проблема. Игроки во что? И уже исходя из ответа нужно строить БД. Потому как наличие у одного игрока нескольких логинов в некоторых компьютерных играх будет считаться за твинководство. Далее идёт проблема безопасности, так как в системе присутствуют пользователи и логины с паролями. Что будет делать система, не БД, а именно система, если один пользователь зашёл сразу под несколькими своими логинами? Что будет делать система, если пользователь на турнире играет сразу за несколько команд под разными логинами? По последней схеме - абсолютно лишние все таблицы *_roles и поля в таблице "Team_players", вся эта связка заменяется одним полем "team_role" в которой, условно: 1 - это админ, 2 - просто игрок. Либо поле "team_role" связывается с таблицей в которой идёт перечень всех ролей, если планируется этот список расширять. Так же излишне разделение одного человека на Users и Players, всё это можно реализовать через одно поле описанное выше. Напоследок несколько наводящих вопросов: Зачем хранить location_id в Users и Teams ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 10:00 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi а можете подсказать насчет: В Requests планирую хранить заявки игроков на добавление в команду (не уверен, что связь должна быть с Team_players) и заявки команд на участие в турнирах. Еще хочу добавить Trainings, при этом игроки должны подтверждаться на тренировки, но не могу пока придумать, как сделать... т.е тренер команды создает тренировку в заданное время, а игрок должен подтвердить свое участие в этой тренировке, аналогично с матчем Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 11:07 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
Stanislav P Игроки во что? в футбол, любительские команды Stanislav P Что будет делать система, не БД, а именно система, если один пользователь зашёл сразу под несколькими своими логинами? Ну зайти он сможет, но у него ведь не будет привилегий каких либо, только права на просмотр будут Stanislav P Что будет делать система, если пользователь на турнире играет сразу за несколько команд под разными логинами? В несколько команд можно заявиться будет и под одним логином, это не запрещается Stanislav P По последней схеме - абсолютно лишние все таблицы *_roles и поля в таблице "Team_players", вся эта связка заменяется одним полем "team_role" в которой, условно: 1 - это админ, 2 - просто игрок. Либо поле "team_role" связывается с таблицей в которой идёт перечень всех ролей, если планируется этот список расширять. Думал разделить, Administrative_roles - это что то типа владелец, администратор/менеджер, тренер, обычный игрок (причем здесь это все можно совмещать, т.е владелец может быть и тренером и при этом играть сам); Playing_roles - это позиция на поле, вратарь, защитник, нападающий; Team_roles - это капитан, помощник капитана и опять же обычный игрок Stanislav P Зачем хранить location_id в Users и Teams? Чтобы пользователь мог видеть команды из своего города, а команды, соответственно, игроков из своего города. Идея такая: есть игроки-любители, команды, турниры. Одни и те же игроки могут быть в нескольких командах, команды могут быть в множестве турниров. Игроки заявляются в команды, администраторы команда или же владельцы, рассматривают эти заявки и принимают игроков. Тренера/администраторы назначают расписание тренировок/матчей, игроки же должны подтвердить свое участие в тренировке/матче в этот день. Тренера также могут добавлять план тренировок, упражнения и т.д. Администраторы команд также могут заявлять свои команды на участие в турнире, организатор турнира должен подтвердить команду, ну и команды между собой должны товарищеские матчи организовывать, вызовы какие либо делать друг другу ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 11:45 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi Идея такая: есть игроки-любители, команды, турниры. Одни и те же игроки могут быть в нескольких командах, команды могут быть в множестве турниров. Игроки заявляются в команды, администраторы команда или же владельцы, рассматривают эти заявки и принимают игроков. Тренера/администраторы назначают расписание тренировок/матчей, игроки же должны подтвердить свое участие в тренировке/матче в этот день. Тренера также могут добавлять план тренировок, упражнения и т.д. Администраторы команд также могут заявлять свои команды на участие в турнире, организатор турнира должен подтвердить команду, ну и команды между собой должны товарищеские матчи организовывать, вызовы какие либо делать друг другу В таком случае всю схему в топку. И начать проектирование надо с составления списка того, что, зачем и как нужно юзеру системы. Будет список, тогда уже можно будет и схему БД рисовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 22:19 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
Stanislav P В таком случае всю схему в топку. И начать проектирование надо с составления списка того, что, зачем и как нужно юзеру системы. Будет список, тогда уже можно будет и схему БД рисовать. Ну, допустим... Всем зарегистрированным юзерам нужно: - иметь возможность редактировать личную информацию - иметь возможность создавать команды - иметь возможность создавать турниры - иметь возможность поиска команды/турнира - иметь возможность заявиться в одну или несколько команд - иметь возможность подтвердить участие в игре - иметь возможность подтвердить участие в тренировке - иметь возможность получать уведомления от команд Юзеру с ролью админа команды: - иметь возможность редактировать описание команды, лого и т.д - иметь возможность приглашать других юзеров в команду - иметь возможность принимать других юзеров в команду - иметь возможность назначать тренера из добавившихся юзеров - иметь возможность заявляться на турниры - иметь возможность организовывать товарищеские игры с другими командами - иметь возможность принимать вызовы других команд на участие в товарищеской игре, либо турнире - иметь возможность проводить голосования, опросы - иметь возможность рассылать уведомления игрокам/тренерам из этой команды - иметь возможность получать уведомления от организаторов турниров - иметь возможность получать уведомления от юзеров, желающих добавиться в команду - иметь возможность удалить созданную команду Юзеру с ролью тренера конкретной команды: - иметь возможность приглашать других юзеров в команду - иметь возможность утверждать расписание тренировок - иметь возможность утверждать состав на игру, расстановку, устанавливать задачи игрокам для этой команды - иметь возможность назначать капитана команды и его помощников для этой команды - иметь возможность распределять игровые номера - иметь возможность утверждать состав на тренировку, утверждать план тренировки для этой команды - иметь возможность рассылать уведомления игрокам/тренерам из этой команды Юзеру с ролью организатора турнира: - иметь возможность редактировать описание турнира, лого и т.д - иметь возможность приглашать команды на турнир - иметь возможность рассылать уведомления администраторам/тренерам команд участников турнира - иметь возможность получать уведомления от команд о принятии участия - иметь возможность удалить созданный турнир Пока что как то вот так. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2021, 23:35 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
Отлично! Сколько сущностей есть в твоём описании? Я вижу такие: Пользователь , Команда , Турнир . Остальное здесь Соответственно у нас уже есть три таблицы : Пользователи , Команды и Турниры . У каждой сущности есть набор атрибутов. У Пользователя есть минимально: 1. ID 2. ФИО 3. Логин 4. Пароль Все эти атрибуты вполне ложатся в одну таблицу. У Команды есть: 1. ID 2. Название 3. Логотип 4. Создатель команды 5. Состав команды из пользователей У Турнира есть: 1. ID 2. Название 3. Место проведения 4. Дата начала турнира 5. Дата окончания турнира 6. Пользователь, создатель турнира 7. Список участвующих команд У Команды и Турнира есть атрибут "состав", который рамками СУБД решается как отдельная таблица связанная с основной: Атрибут Состав Команды является отдельной таблицей СоставКоманды содержащей: 1. ID 2. ID_Команды 3. ID_Пользователя 4. Роль_Пользователя (есть несколько вариантов реализации того, что один пользователь может иметь несколько ролей в команде) Атрибут Участники Турнира так же является отдельной таблицей УчастникиТурнира : 1. ID 2. ID_КомандыУчастницыТурнира То есть, у нас есть пять основных таблиц: Пользователи, Команды, СоставКоманды, Турнир и УчастникиТурнира. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2021, 09:34 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
Stanislav P Отлично! Сколько сущностей есть в твоём описании? Я вижу такие: Пользователь , Команда , Турнир . Остальное здесь Соответственно у нас уже есть три таблицы : Пользователи , Команды и Турниры . У каждой сущности есть набор атрибутов. У Пользователя есть минимально: 1. ID 2. ФИО 3. Логин 4. Пароль Все эти атрибуты вполне ложатся в одну таблицу. У Команды есть: 1. ID 2. Название 3. Логотип 4. Создатель команды 5. Состав команды из пользователей У Турнира есть: 1. ID 2. Название 3. Место проведения 4. Дата начала турнира 5. Дата окончания турнира 6. Пользователь, создатель турнира 7. Список участвующих команд У Команды и Турнира есть атрибут "состав", который рамками СУБД решается как отдельная таблица связанная с основной: Атрибут Состав Команды является отдельной таблицей СоставКоманды содержащей: 1. ID 2. ID_Команды 3. ID_Пользователя 4. Роль_Пользователя (есть несколько вариантов реализации того, что один пользователь может иметь несколько ролей в команде) Атрибут Участники Турнира так же является отдельной таблицей УчастникиТурнира : 1. ID 2. ID_КомандыУчастницыТурнира То есть, у нас есть пять основных таблиц: Пользователи, Команды, СоставКоманды, Турнир и УчастникиТурнира. Да, получается так... вроде пока так и было, только еще дополнено было в схеме... Для стадионов, стран, городов, ролей таблицы нужны? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2021, 11:47 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
yozzi Stanislav P В таком случае всю схему в топку. И начать проектирование надо с составления списка того, что, зачем и как нужно юзеру системы. Будет список, тогда уже можно будет и схему БД рисовать. Ну, допустим... Всем зарегистрированным юзерам нужно: - иметь возможность редактировать личную информацию - иметь возможность создавать команды - иметь возможность создавать турниры - иметь возможность поиска команды/турнира - иметь возможность заявиться в одну или несколько команд - иметь возможность подтвердить участие в игре - иметь возможность подтвердить участие в тренировке - иметь возможность получать уведомления от команд Юзеру с ролью админа команды: - иметь возможность редактировать описание команды, лого и т.д - иметь возможность приглашать других юзеров в команду - иметь возможность принимать других юзеров в команду - иметь возможность назначать тренера из добавившихся юзеров - иметь возможность заявляться на турниры - иметь возможность организовывать товарищеские игры с другими командами - иметь возможность принимать вызовы других команд на участие в товарищеской игре, либо турнире - иметь возможность проводить голосования, опросы - иметь возможность рассылать уведомления игрокам/тренерам из этой команды - иметь возможность получать уведомления от организаторов турниров - иметь возможность получать уведомления от юзеров, желающих добавиться в команду - иметь возможность удалить созданную команду Юзеру с ролью тренера конкретной команды: - иметь возможность приглашать других юзеров в команду - иметь возможность утверждать расписание тренировок - иметь возможность утверждать состав на игру, расстановку, устанавливать задачи игрокам для этой команды - иметь возможность назначать капитана команды и его помощников для этой команды - иметь возможность распределять игровые номера - иметь возможность утверждать состав на тренировку, утверждать план тренировки для этой команды - иметь возможность рассылать уведомления игрокам/тренерам из этой команды Юзеру с ролью организатора турнира: - иметь возможность редактировать описание турнира, лого и т.д - иметь возможность приглашать команды на турнир - иметь возможность рассылать уведомления администраторам/тренерам команд участников турнира - иметь возможность получать уведомления от команд о принятии участия - иметь возможность удалить созданный турнир Пока что как то вот так. это всё правила авторизации, которые складываются в группы и присваиваются ролям, которые раздаются юзерам ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2021, 11:50 |
|
проектирование БД
|
|||
---|---|---|---|
#18+
бабушкин зайчик yozzi пропущено... Ну, допустим... Всем зарегистрированным юзерам нужно: - иметь возможность редактировать личную информацию - иметь возможность создавать команды - иметь возможность создавать турниры - иметь возможность поиска команды/турнира - иметь возможность заявиться в одну или несколько команд - иметь возможность подтвердить участие в игре - иметь возможность подтвердить участие в тренировке - иметь возможность получать уведомления от команд Юзеру с ролью админа команды: - иметь возможность редактировать описание команды, лого и т.д - иметь возможность приглашать других юзеров в команду - иметь возможность принимать других юзеров в команду - иметь возможность назначать тренера из добавившихся юзеров - иметь возможность заявляться на турниры - иметь возможность организовывать товарищеские игры с другими командами - иметь возможность принимать вызовы других команд на участие в товарищеской игре, либо турнире - иметь возможность проводить голосования, опросы - иметь возможность рассылать уведомления игрокам/тренерам из этой команды - иметь возможность получать уведомления от организаторов турниров - иметь возможность получать уведомления от юзеров, желающих добавиться в команду - иметь возможность удалить созданную команду Юзеру с ролью тренера конкретной команды: - иметь возможность приглашать других юзеров в команду - иметь возможность утверждать расписание тренировок - иметь возможность утверждать состав на игру, расстановку, устанавливать задачи игрокам для этой команды - иметь возможность назначать капитана команды и его помощников для этой команды - иметь возможность распределять игровые номера - иметь возможность утверждать состав на тренировку, утверждать план тренировки для этой команды - иметь возможность рассылать уведомления игрокам/тренерам из этой команды Юзеру с ролью организатора турнира: - иметь возможность редактировать описание турнира, лого и т.д - иметь возможность приглашать команды на турнир - иметь возможность рассылать уведомления администраторам/тренерам команд участников турнира - иметь возможность получать уведомления от команд о принятии участия - иметь возможность удалить созданный турнир Пока что как то вот так. это всё правила авторизации, которые складываются в группы и присваиваются ролям, которые раздаются юзерам ну я не могу не согласиться с Вами) но ведь данные где то хранить нужно при этом ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2021, 12:30 |
|
|
Start [/forum/topic.php?fid=32&msg=40075612&tid=1539792]: |
0ms |
get settings: |
21ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
575ms |
get tp. blocked users: |
2ms |
others: | 387ms |
total: | 1093ms |
0 / 0 |