Схема PostgreSQL баз данных для PokerTracker 3.Введение.Структура баз данных. Базы данных – в реальности, коллекция таблиц (электронных таблиц). Каждая таблица может содержать как данные, так и ссылки (связи) на другие таблицы, в которых также содержаться данные и связи между данными.
Соглашенья в обозначениях.В нашей базе данных, названия: таблиц, столбцов, связей - имеют определенный принцип их формирования.
Таблицы.Первая часть названия таблиц – это тип таблицы. Существует четыре типа таблиц:
- holdem –кэш игры
- tourney_holdem – турниры
- lookup – таблицы для облегчения поиска значений
- other – все остальные таблицы, не падающие в вышеупомянутые три категории.
Вторая часть названия таблицы зависит от первой части названия и подробней описывает назначенье таблицы. Например, таблицы, которые начинаются с
holdem_hand, это таблицы для рук сыгранных в кэш играх.
Третья часть названия таблицы (если она необходима), еще подробней описывает назначенье таблицы. Вернемся к предыдущему примеру, всего существует пять
holdem_hand таблиц:
- _player_detail - детали розыгрыша руки игроком.
- _histories - содержит текстовые истории рук.
- _player_combinations - учет готовых и дро комбинаций игрока на каждой улице.
- _player_statistics - учет действий игрока на каждой улице.
- _summary - учет результатов розыгрышей.
Столбцы.Таблицы состоят из столбцов. Первая часть названья столбца показывает тип столбца.
- id – Идентификатор, связь с другими таблицами.
- flg – Флаг. В ячейках хранятся булевские переменные (истина/ложь или 0/1).
- val – Числовое значение. Может быть целым или десятичным.
- amt – Сумма чисел. Имеет десятичный или денежный тип числа.
- cnt – Подсчет действий. Всегда целое число.
- enum – Перечисление. Информация в ячейках может содержать только определенные значения. Обычно один символ, хотя в некоторых может быть и несколько символов. Справка о том, какие это значения обычно указывается в комментариях к столбцу.
Связи.Таблицы базы данных, связаны друг с другом при помощи идентификаторов. Идентификатор – уникальное «значение» (обычно целое число), на основании которого можно найти в другой таблице необходимые нам данные. Например: в таблице
hold_hand_player_detail, есть столбец с идентификаторами -
id_player, эти идентификаторы приводят нас к таблице
player. Программа, используя значенье идентификатора -
id_player, находит в таблице
player игрока, к которому и относятся рассматриваемые данные.
Ниже приведена таблица, в которой расписаны идентификаторы и их ссылки.
Таблица | Идентификатор | Таблицы, которые связаны по этому идентификатору |
lookup_sites | id_site | player; holdem_hand_summary; holdem_table_session_summary; tourney_holdem_hand_summary; tourney_holdem_results; tourney_holdem_summary |
lookup_hand_groups | id_*_hand_strength | holdem_hand_player_combinations; tourney_holdem_hand_player_combinations |
lookup_actions | id_action_* | holdem_hand_player_detail; tourney_holdem_hand_player_detail |
holdem_hand_summary | id_hand | 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 |
player | id_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 |
holdem_limit | id_limit | holdem_hand_player_statistics; holdem_hand_summary; holdem_table_session_summary |
holdem_table_session_summary | id_session | holdem_hand_player_statistics |
holdem_table | id_table | holdem_hand_summary; holdem_table_session_summary; tourney_holdem_hand_summary |
player | id_winner | holdem_hand_summary; tourney_holdem_hand_summary; tourney_holdem_summary |
player | id_real_player | holdem_table_session_summary; tourney_holdem_hand_player_statistics; tourney_holdem_results; holdem_hand_player_statistics |
Общие таблицы базы данных.Таблица – "player"Содержит общую и непосредственную информацию по никам игроков.
Основной стат - id_player.
Столбец | Формат данных | Описание |
id_player | целое | Идентификатор основного ника игрока. |
id_site | м. целое | Идентификатор покерной сети. Ссылается на таблицу "lookup_sites". |
player_name | текст | Ник игрока в покерной сети. |
player_name_search | текст | Ник игрока в покерной сети набранный строчными буквами (для облегчения поиска). |
id_player_alias | целое | Идентификатор дополнительного ника игрока, который мы добавили к основному нику в поле "Aliased". |
val_icon | целое | Число, соответствующее иконке-значку присвоенному игроку процессом "auto-rate". |
flg_note | булева | Если есть хоть одна заметка (нотс) на игрока. Значение будет - True (истина), если нет - False (ложь). |
Таблица – "notes"Все что связано с заметками (нотсами) на: игроков, розыгрыши, сессии или турниры.
Основной стат - id_note.
Столбец | Формат данных | Описание |
id_note | целое | Идентификатор заметки. Этот идентификатор равен идентификационному номеру того, на что сделана эта заметка. Например, если это - заметка об определенном игроке, то значение id_note равно значению id_player. Если это заметка об определенной сессии, то id_note равен значению id_session. |
id_x | м. целое | Идентификатор, зависящий от enum_type. |
enum_type | символ (3) | Символ заметки. Обозначающий тип заметки, на: игрока, розыгрыш, сессию или турнир. |
date_note | дата | Дата создания или обновления заметки. |
notes | текст | Текст заметки. |
Таблица – "settings"Описание версии установленной программы PokerTracker 3.
Основной стат - setting_name.
Столбец | Формат данных | Описание |
setting_name | текст | Название установки. |
setting_value | текст | Значение установки. |
Продолжение →