powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создать таблицу с указанием дня если она еще не создана
14 сообщений из 14, страница 1 из 1
Создать таблицу с указанием дня если она еще не создана
    #39910112
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, хочу собирать статистику активности пользователей по дням.

1. Одна таблица = один день, как лучше называть такую таблицу? 31.12.2019 или посоветуете лучше решение?
2. Как создать таблицу при условии если она еще не создана?
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910113
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96
Одна таблица = один день, как лучше называть такую таблицу?

Лучше так не делать.

Tonny96
или посоветуете лучше решение

Поле с датой.
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910118
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96
Здравствуйте, хочу собирать статистику активности пользователей по дням.

1. Одна таблица = один день, как лучше называть такую таблицу? 31.12.2019 или посоветуете лучше решение?
2. Как создать таблицу при условии если она еще не создана?
2. Динамический SQL
1. Лучше-хуже, странный подход..
как вы потом обрабатывать эту статистику будете, тоже динамическим SQL? Выше подсказали Единственной правильное решение...
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910121
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в таблицу должно быть записано несколько временных меток собранных за 1 день на 1 уникального пользователя.


steamid name ip spec_time t_time ct_time cmd_time - где steamid уникальное поле.

Как тут прилепить дату?
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910123
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96
steamid уникальное поле.

Как тут прилепить дату?
Уникальный индекс по двум полям. А может и по трем, если ещё и пользователя туда же добавить.
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910126
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96,

название полей ни о чем не говорят...
SHOW CREATE TABLE надо показывать.
В любом случае должно быть поле типа datetime и писать туда NOW()
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910132
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрите. Игрок играет на сервере он может выходить с него и заходить на него по 20 раз за день, у каждого игрока сть вой уникальный steamid - именно его я использую в качестве уникального значения в базе.

Сколько времени от провел на сервере в течении суток - добавлять\обновлять данные пользователя в таблице мы будем кадый раз когда он вЫходит с сервера, если игрок уже заходи на сервер сегодня он уже будет в базе и мы суммируем время которое он ранее наиграл с веременем которое он наиграл только что.

На основе этих данных мне нужно будет узнать сколько этот игрок наиграл времени например с 10.12.2019 по 17.12.2019

Вы упомянули что можно это реализовать используя 2 уникальных поля, а именно steamid и data, я чайник по большому счету, по этому был бы очень благодарен если-бы вы написали запрос создания такой таблицы с необходимыми индексами и параметрами полей + обьяснили как получать время наигранное игроком с такой сложной для меня структуры за определенный промежуток времени.

Хочу заметить что игровых серверов несколько и для каждый сревера лучше создавать отдельную таблицу верно?
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910141
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96
используя 2 уникальных поля
Читайте внимательнее. Поля НЕ уникальны. Например, несколько игроков вполне могут иметь одинаковую дату игрового сеанса, а один игрок имеет сеансы игры в разные даты. Уникален составной индекс по этим двум полям. Впрочем, по большому то счету тут и не требуется индекс, так как уникальность пары "игрок + дата" обеспечивается непосредственно данными. С индексом, конечно проще, для добавления/обновления можно использовать запрос INSERT ... ON DUPLICATE KEY UPDATE ...

Tonny96
игровых серверов несколько и для каждый сревера лучше создавать отдельную таблицу верно?
Лучше чем ЧТО? ЧЕМ именно оно лучше? Изложите свою точку зрения.

Вообще, ни к чему огороды городить там, где они не нужны. В данном случае можно (а нужно ли?) добавить поле с ID сервера и хранить данные в одной таблице.
Другой вопрос - доступность "центрального хранилища" в каждый момент времени для множества серверов, но этот вопрос совсем другого толку.
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910162
Фотография Karbafos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96
Здравствуйте, хочу собирать статистику активности пользователей по дням.

1. Одна таблица = один день, как лучше называть такую таблицу? 31.12.2019 или посоветуете лучше решение?
2. Как создать таблицу при условии если она еще не создана?


У тебя уже есть таблица, ты её приводил в пример в другой теме про имя юзера.
Чем она не устраивает?
Добавь туда поле created_at типа datetime
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910268
Куск
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tonny96
Здравствуйте, хочу собирать статистику активности пользователей по дням.

1. Одна таблица = один день, как лучше называть такую таблицу? 31.12.2019 или посоветуете лучше решение?
2. Как создать таблицу при условии если она еще не создана?


CREATE TABLE
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910287
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Karbafos,

SELECT @i := @i + 1 AS num,
steamid,
name,
cmd_time
FROM ( SELECT t0.steamid,
MAX(t3.name) name,
SUM(t0.cmd_time) cmd_time
FROM 68_27018 t0
JOIN ( SELECT t1.steamid, t1.name
FROM 68_27018 t1
NATURAL JOIN ( SELECT steamid, MAX(`end`) `end`
FROM 68_27018
GROUP BY steamid ) t2
) t3 USING (steamid)
GROUP BY t0.steamid
ORDER BY 3 DESC LIMIT 0, 15 ) x,
( SELECT @i:=0 ) z
ORDER BY 4 DESC

вот так я получаю данные из базы (с учетом последнего ника игрока)... запрос обрабатывается 40 секунд... по этому думаю нужно что-то менять в структуре... ил в запросе хз(
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910288
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tonny96, вот структура действующей таблицы ... выше написал запрос которы й меня лично обрабатывается 40 секунд на хосте... может можно как-то это исправить????
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910289
Tonny96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НА ЭТОМ КОНЧЕННОМ ДВИЖКЕ ФОРУМА не могу удалить случайно загруженною картинку((
...
Рейтинг: 0 / 0
Создать таблицу с указанием дня если она еще не создана
    #39910290
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tonny96
не могу удалить
включили же редактирование для всех. Что-то не работает?
И никуда не делся прежний вариант - написать модератору.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Создать таблицу с указанием дня если она еще не создана
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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