PokerTracker: Структура базы данных - портал www.Holdemworld.RU часть 1
Базы данных
PostgreSQL
PokerTracker3 – программа, собирающая информацию из историй раздач и выстраивающая статистику на основе этих данных. При огромном объеме данных, которые можно получить из историй раздач, и при большом количестве самих историй раздач, система управления базами данных должна функционировать очень эффективно. И здесь появляется PostgreSQL.
PostgreSQL – это сервер баз данных, работающий на Вашем компьютере одновременно с РТ3. РТ3 обращается к серверу и считывает и записывает данные, хранящиеся в базах. На данный момент существуют несколько решений SQL-серверов, и одно из самых давно-существующих, самых стабильных и широко масштабируемых их них – это PostgreSQL. Это программный продукт с открытым исходным текстом, то есть Вам не придется платить за пользование этой системой управления базами данных. Дополнительную информацию о PostgreSQL можно найти на сайте http://www.postgresql.org/.
Структура базы данных
База данных представляет собой набор таблиц, при этом каждая из таблиц может либо быть сама по себе, либо ссылаться на другие таблицы, при этом в интерфейсе базы данных отражаются отношения между разными данными.
Универсальное назначение наименований
Во всей базе данных таблицы и их поля поименованы строго определенным образом.
Таблицы
Первая часть названия таблицы отражает ее тип. На данный момент выделено 4 основных типа таблиц:
Вторая часть названия таблицы зависит от первой части и описывает саму таблицу. Например, в таблицах, названия которых начинаются с «holdem_hand», будут содержаться данные по текущей раздаче круговой игры Техасского Холдема.
Третья часть названия таблицы не является обязательной; она еще более детально описывает таблицу, если в этом есть необходимость. Продолжим рассматривать пример, приведенный выше – существует 5 таблиц, названия которых начинаются с «holdem_hand», среди них «_histories», «_player_combinations» и т.д. В эти таблицы вносятся подробно классифицированные данные по определенной раздаче круговой игры Техасского Холдема.
Поля
Таблица состоит из полей. Поле – это название определенного фрагмента информации (данных). Универсальное назначение наименований полей приведено ниже:
Id – идентификатор, ссылающийся на другую таблицу. Если Вы знакомы с внешними ключами (они не используются в базе данных РТ3), то следует сказать, что в каждом поле, название которого начинается с «id_» будет использоваться ограничитель внешнего ключа. Идентификатор будет ссылаться на другую таблицу, содержащую данные по этому идентификатору. Например, «id_player» будет ссылаться на таблицу «player», то есть PokerTracker3, используя данные из таблицы «id_player», ищет нужный идентификатор в таблице «player» и извлекает информацию по определенному игроку.
Flg – означает, что поле содержит Булево значение («да» или «нет», в буквальном смысле – истина или ложь, 0 или 1)
Val – числовое значение (целое либо дробное). Целое число не содержит десятичных долей, а дробное – напротив содержит их, либо может содержать (хотя может и не содержать).
Amt – сумма значений, всегда являющаяся дробным числом (содержащим десятичные доли) и обычно относящаяся к финансам. Например, «amt_pot» - это сумма бетов до рейка, являющаяся дробным числом.
Cnt – количество действий, всегда целое число.
Enum – перечень значений. Это поле может содержать только определенные значения. Обычно эти значения представляют собой один символ, хотя потенциально могут быть и строкой. Для разных полей существуют разные валидные символы, это детально объясняется ниже.
Отношения
Таблицы базы данных соотносятся друг с другом при помощи ключевых идентификаторов. Это уникальные типы данных (обычно целые числа), при помощи которых таблицы ссылаются одна на другую. Например, в таблице «hold_hand_player_detail» существует поле «id_player», которое ссылается на таблицу «player». Программа использует число из поля «id_player» для поиска по таблице «player», в результате находится игрок, к которому относится статистика данного отношения. Ниже приведены таблицы, ссылающиеся на другие таблицы, а также идентификаторы, используемые для ссылок между таблицами.
Данные представлены в виде (идентификатор поля -> таблица, на которую он ссылается), а далее приведен список таблиц, в которых используется данный идентификатор и отношение.
id_site -> lookup_sites
player
holdem_hand_summary
holdem_table_session_summary
tourney_holdem_hand_summary
tourney_holdem_results
tourney_holdem_summary
id_hand -> holdem_hand_summary
holdem_hand_histories
holdem_hand_player_combinations
holdem_hand_player_detail
holdem_hand_player_statistics
tourney_holdem_hand_histories
tourney_holdem_hand_player_combinations
tourney_holdem_hand_player_detail
tourney_holdem_hand_player_statistics
tourney_holdem_hand_summary
id_player -> player
holdem_hand_player_combinations
holdem_hand_player_detail
holdem_hand_player_statistics
holdem_table_session_summary
tourney_holdem_hand_player_combinations
tourney_holdem_hand_player_detail
tourney_holdem_hand_player_statistics
tourney_holdem_results
id_*_hand_strength -> lookup_hand_groups
holdem_hand_player_combinations
tourney_holdem_hand_player_combinations
id_action_* -> lookup_actions
holdem_hand_player_detail
tourney_holdem_hand_player_detail
id_limit -> holdem_limit
holdem_hand_player_statistics
holdem_hand_summary
holdem_table_session_summary
id_session -> holdem_table_session_summary
holdem_hand_player_statistics
id_table -> holdem_table
holdem_hand_summary
holdem_table_session_summary
tourney_holdem_hand_summary
id_winner -> player
holdem_hand_summary
tourney_holdem_hand_summary
tourney_holdem_summary
id_real_player -> player
holdem_table_session_summary
tourney_holdem_hand_player_statistics
tourney_holdem_results
holdem_hand_player_statistics
Таблицы
Структура таблиц базы данных описана ниже. В каждой табличке указаны столбцы, из которых состоит таблица; тип данных, содержащихся в данном столбце; а также краткое описание столбца и хранящейся в нем информации.
Таблицы игроков и записей
Таблица « player»
Содержит имена игроков и общую информацию о них.
Название столбца/ Идентификатор поля |
Тип данных |
Описание |
id_player |
Целое число |
Идентификатор игрока – уникальный номер, присваиваемый РТ3 для точного определения пользователя |
id_site |
Малое целое число |
Идентификатор сайта, к которому относится данное отображаемое название сайта. Ссылается на таблицу «lookup_sites» |
player_name |
Текст |
Имя игрока на сайте |
player_name_search |
Текст |
Имя игрока в нижнем регистре; это позволяет РТ3 быстрее находить игрока по имени. |
id_player_alias |
Целое число |
Идентификатор игрока, являющийся его псевдонимом в базе данных. Ссылается на таблицу «player». |
val_icon |
Целое число |
Автоматически определяемая иконка для игрока. Не является иконкой «друга». |
flg_note |
Булево значение |
Если по игроку есть хотя бы одна пометка, значение устанавливается как истинное; в противном случае – как ложное. |
Таблица « notes»
Описывает все пометки в базе данных – относительно игроков, раздач, сессии и турниров.
Название столбца/ Идентификатор поля |
Тип данных |
Описание |
id_note |
Целое число |
Идентификатор пометки. Этот идентификатор совпадает с ID-номером того, к чему относится эта пометка. Например, если это пометка по определенному игроку, то значение id_note равно значению id_player. Если это пометка по сессии, то значение этого идентификатора равно значению id_session. |
id_x |
Целое число |
Идентификатор, зависящий от поля enum_type. |
enum_type |
Символ |
Тип пометки. Player (Игрок), Hand (Раздача), Session (Сессия), Tourney (Турнир) и т.д. |
date_note |
Временная метка |
Дата создания или обновления пометки. |
Notes |
Текст |
Текст пометки |
Таблицы круговых игр
Таблица « holdem_hand_histories»
Здесь хранятся истории раздач круговых игр в Холдем (если они сохранены при импорте).
Название столбца/ Идентификатор поля |
Тип данных |
Описание |
id_hand |
Целое число |
Идентификатор раздачи. Ссылается на таблицу «holdem_hand_summary». |
history |
Текст |
Фактическая история раздачи. |
Навигация
Покер-рум | Рейтинг | Бонус | Бонус код | Ссылка |
1.
|
Лучший | $2000 | HOBONUS | Смотреть |
2.
|
4.5 | $600 | HOBONUS | Смотреть |
3.
|
4.0 | $500 | HOBONUS | Смотреть |
4.
|
3.5 | $1000 | HOBONUS | Смотреть |