Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. У меня вот такая ситуация:
Есть таблица с игроками, в которой указаны данные "ник", "город", "возраст", "очки рейтинга" и т.д. Каждую неделю проводятся турниры после которых игрок получает (или теряет) рейтинг.
Необходимо сохранять каждое изменение рейтинга для каждого игрока, чтобы в анкете игрока выдавать график изменения его рейтинга.
Как я себе это представляю.
а) Просто добавить текстовое поле "история рейтинга" и после каждого турнира конкатенировать строку "100|105|109|107|102|99" и т.д. В этом случае я сталкиваюсь с ограничением длины текста. Проект долгосрочный и через определенной время добавление текста будет невозможно.
б) Создавать для каждого игрока отдельную таблицу "история рейтинга" и просто вставлять новые записи с новым значением рейтинга. В этом случае сталкиваюсь с проблемой, если у меня 10000-50000 игроков, мне придется иметь для каждого таблицу...
Вопросы:
Есть ли ограничение в MySQL на количество таблиц в одной БД?
Плохо ли это с точки зрения оптимизации работы MySQL иметь столько таблиц?
Есть ли еще какой-то более правильный вариант решить мою проблему с сохранением изменений рейтинга?
Неактивен
А почему просто не сделать одну таблицу с историей рейтинга игроков?
Неактивен
Подскажите пожалуйста, какую структуру она будет иметь в этом случае?
Где хранить постоянно добавляющиеся значения для каждого игрока?
Отредактированно 400kg (13.09.2010 12:34:44)
Неактивен
Ну, например,
CREATE TABLE rating_log (
player_id INT NOT NULL,
ts TIMESTAMP NOT NULL,
rating INT NOT NULL,
INDEX(player_id, ts)
);
Неактивен
одна таблица на 3 столбца - юзер_ид, дата, рейтинг
Неактивен
paulus написал:
Ну, например,
CREATE TABLE rating_log (
player_id INT NOT NULL,
ts TIMESTAMP NOT NULL,
rating INT NOT NULL,
INDEX(player_id, ts)
);
Точно! Спасибо! С меня пару переходов по яндекс директ
Неактивен