Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Принцип размещения данных (400kg) 13/09/2010 - 12:24:52
      Re: Принцип размещения данных (Hamyachok) 13/09/2010 - 14:50:09
      Re: Принцип размещения данных (Hamyachok) 13/09/2010 - 14:57:08

> Original message text:
> From: 400kg - 13/09/2010 - 12:24:52
> Subject:Принцип размещения данных
> -----------------
> Здравствуйте. У меня вот такая ситуация:
>
> Есть таблица с игроками, в которой указаны данные "ник", "город", "возраст", "очки рейтинга" и т.д. Каждую неделю проводятся турниры после которых игрок получает (или теряет) рейтинг.
>
> Необходимо сохранять каждое изменение рейтинга для каждого игрока, чтобы в анкете игрока выдавать график изменения его рейтинга.
>
> Как я себе это представляю.
>
> а) Просто добавить текстовое поле "история рейтинга" и после каждого турнира конкатенировать строку "100|105|109|107|102|99" и т.д. В этом случае я сталкиваюсь с ограничением длины текста. Проект долгосрочный и через определенной время добавление текста будет невозможно.
>
> б) Создавать для каждого игрока отдельную таблицу "история рейтинга" и просто вставлять новые записи с новым значением рейтинга. В этом случае сталкиваюсь с проблемой, если у меня 10000-50000 игроков, мне придется иметь для каждого таблицу...
>
> Вопросы:
> Есть ли ограничение в MySQL на количество таблиц в одной БД?
> Плохо ли это с точки зрения оптимизации работы MySQL иметь столько таблиц?
> Есть ли еще какой-то более правильный вариант решить мою проблему с сохранением изменений рейтинга?
>


From: Hamyachok - 13/09/2010 - 14:50:09
Subject:Принцип размещения данных
-----------------
А можно еще подзамудрить))
Например: сделать 2 таблицы:
1 таблица - игроков, в которой хранятся данные об игроках.
2 таблица - рейтинга.
Я придумал 2 способа как сделать структуру 2-й таблицы:
1. Просто записывать новые строки, а при показании диаграммы выбирать строки по id игрока.
2. Создать таблицу с n-количеством полей. По скольку фиксация рейтинга - число четко периодическое, то можно создать поле начала записи, например 23.09.2010, а в последующих полях записывать данные рейтинга. После чего, когда поля закончатся, создать новую строку с указанием новой даты начала, которая в свою очередь просчитается по формуле - кол-во полей*7, т.е. кол-во дней.
При 1-м - меньше программирования, но вопрос об ограничении на количество строк, я не знаю, есть ли оно вообще в mysql.
При 2-м - больше программирования, но зато более щадящее отношение к базе, за счет меньшего количества строк, но большего количества полей))))))
Если еще что-нибудь в голову придет, отпишусь!Удачи.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37433



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |