🗄️ Детальная информация о таблицах БД
Все таблицы системы с полной структурой и примерами данных
Описание: Основные сценарии тренажеров
🔧 Структура таблицы:
scenario_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
scenario_name
Тип: varchar(200)
Обязательное: Да
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
scenario_id: 1
scenario_name: КиберТех: Битва за рынок умных гаджетов
description: Стратегический тренажер по выводу на рынок умной коло�... [обрезано]
created_at: 2025-10-22 23:14:55
Запись #2:
scenario_id: 2
scenario_name: Проба - номер 2
description: Стратегический тренажер по выводу на рынок умной коло�... [обрезано]
created_at: 2025-10-22 23:14:55
Описание: Шаги сценариев
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: step_id, scenario_id, step_number, title, situation_text, allow_multiple_choices
game-completed.php
SELECT
UPDATE
Ключевые поля: step_id, step_number, title
🔴 Критически важные поля:
step_id
PRIMARY KEY - идентификатор шага
scenario_id
Связь со сценарием
step_number
Номер шага в последовательности
situation_text
Текст ситуации для отображения
allow_multiple_choices
Разрешение множественного выбора
🔧 Структура таблицы:
step_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
scenario_id
Тип: int
Ключ: MUL
Обязательное: Да
step_number
Тип: int
Ключ: MUL
Обязательное: Да
title
Тип: varchar(200)
Обязательное: Да
situation_text
Тип: text
Обязательное: Да
allow_multiple_choices
Тип: tinyint(1)
По умолчанию: 0
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
step_id: 1
scenario_id: 1
step_number: 1
title: Базовый выбор
situation_text: Ваша компания, "КиберТех", выводит на рынок умную колон�... [обрезано]
allow_multiple_choices: 0
max_choices: 1
initial_metrics: JSON: {
"cash": 50000000,
"revenue": 0,
"reputation": 50,
"tech_level": 50,
"fix... [обрезано]
calculation_logic: JSON: {
"cash": "previous.cash + previous.revenue - previous.fixed_costs",
"reputation": "pr... [обрезано]
created_at: 2025-10-22 23:16:34
Запись #2:
step_id: 2
scenario_id: 1
step_number: 2
title: Последствия первого выбора + внешний шок
situation_text: Ваша стратегия начала приносить плоды. Однако макроэк�... [обрезано]
allow_multiple_choices: 0
max_choices: 1
initial_metrics: JSON: {
"cash": 45000000,
"reputation": 65,
"tech_level": 50,
"market_share": 3,
... [обрезано]
calculation_logic: JSON: {
"cash": "previous.cash + previous.revenue - previous.fixed_costs - event_costs",
"ma... [обрезано]
created_at: 2025-10-22 23:16:34
Описание: Варианты выбора для шагов
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: choice_id, step_id, choice_key, title, description, risks, immediate_effects
game-completed.php
SELECT
UPDATE
Ключевые поля: choice_id, title, description, choice_key, immediate_effects
🔴 Критически важные поля:
choice_id
PRIMARY KEY - идентификатор выбора
choice_key
Ключ выбора (A, B, C)
description
Описание варианта для игрока
immediate_effects
JSON с немедленными эффектами на метрики
🔧 Структура таблицы:
choice_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
step_id
Тип: int
Ключ: MUL
Обязательное: Да
choice_key
Тип: varchar(10)
Ключ: MUL
Обязательное: Да
title
Тип: varchar(200)
Обязательное: Да
description
Тип: text
Обязательное: Да
is_default
Тип: tinyint(1)
По умолчанию: 0
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
choice_id: 1
step_id: 1
choice_key: A
choice_group:
title: Премиум-стратегия
description: Сфокусироваться на качестве и уникальном дизайне. Выс�... [обрезано]
risks: Медленный рост доли рынка; высокая цена может отпугнут... [обрезано]
is_default: 0
immediate_effects: JSON: {
"reputation": 15,
"base_sales_volume": 10000,
"margin_multiplier": 2.5
}
delayed_effects: JSON: {
"brand_value": 25,
"market_growth_rate": 0.01000000000000000020816681711721685132943... [обрезано]
unlock_conditions:
created_at: 2025-10-22 23:19:41
Запись #2:
choice_id: 2
step_id: 1
choice_key: B
choice_group:
title: Массовая стратегия
description: Низкая цена, агрессивный маркетинг. Быстрый захват дол... [обрезано]
risks: Низкая маржа; риск восприятия как "бюджетного" бренда.
is_default: 0
immediate_effects: JSON: {
"reputation": -10,
"base_sales_volume": 40000,
"margin_multiplier": 1.1999999999... [обрезано]
delayed_effects: JSON: {
"price_sensitivity": 15,
"market_growth_rate": 0.05000000000000000277555756156289135... [обрезано]
unlock_conditions:
created_at: 2025-10-22 23:19:41
Описание: Игровые сессии пользователей
📁 Используется в файлах:
cybertech-auth.php
SELECT
INSERT
UPDATE
Ключевые поля: session_id, user_id, player_name, status, current_step
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: session_id, current_step
game-completed.php
SELECT
UPDATE
Ключевые поля: session_id, status
🔴 Критически важные поля:
session_id
PRIMARY KEY - идентификатор сессии
user_id
Связь с пользователем WordPress
player_name
Имя игрока для авторизации
status
Статус сессии (active/completed)
current_step
Текущий шаг игры
current_metrics
Текущее состояние метрик (в расширенной версии)
🔧 Структура таблицы:
session_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
user_id
Тип: bigint
Ключ: MUL
Обязательное: Да
scenario_id
Тип: int
Ключ: MUL
Обязательное: Да
session_name
Тип: varchar(100)
Обязательное: Да
player_name
Тип: varchar(100)
Обязательное: Да
company_name
Тип: varchar(100)
Обязательное: Да
status
Тип: enum('active','completed','abandoned')
Ключ: MUL
По умолчанию: active
created_at
Тип: datetime
Ключ: MUL
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
updated_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED on update CURRENT_TIMESTAMP
📊 Пример данных (первые 2 записей):
Запись #1:
session_id: 3
user_id: 1
scenario_id: 1
session_name: Сессия z - 23.10.2025 07:54
player_name: z
company_name: КиберТех
current_step: 1
current_metrics:
active_effects:
session_flags:
status: active
created_at: 2025-10-23 10:54:26
updated_at: 2025-10-23 10:54:26
completed_at:
Запись #2:
session_id: 4
user_id: 1
scenario_id: 1
session_name: Сессия я - 23.10.2025 08:07
player_name: я
company_name: КиберТех
current_step: 6
current_metrics:
active_effects:
session_flags:
status: completed
created_at: 2025-10-23 11:07:13
updated_at: 2025-10-23 15:48:49
completed_at: 2025-10-23 15:48:49
Описание: Прогресс по шагам
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: session_id, step_id, choice_id
game-completed.php
SELECT
UPDATE
Ключевые поля: session_id, step_id, choice_id
🔴 Критически важные поля:
session_id
Связь с сессией
choice_id
Связь с выбранным вариантом
🔧 Структура таблицы:
progress_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
session_id
Тип: int
Ключ: MUL
Обязательное: Да
step_id
Тип: int
Ключ: MUL
Обязательное: Да
choice_id
Тип: int
Ключ: MUL
Обязательное: Да
step_started_at
Тип: datetime
Обязательное: Да
step_completed_at
Тип: datetime
Ключ: MUL
Обязательное: Да
📊 Пример данных (первые 2 записей):
Запись #1:
progress_id: 1
session_id: 4
step_id: 1
choice_id: 3
step_started_at: 2025-10-23 13:53:32
step_completed_at: 2025-10-23 13:53:32
decision_time_seconds: 0
Запись #2:
progress_id: 2
session_id: 4
step_id: 2
choice_id: 5
step_started_at: 2025-10-23 13:54:09
step_completed_at: 2025-10-23 13:54:09
decision_time_seconds: 0
Описание: История метрик игроков
📁 Используется в файлах:
cybertech-auth.php
SELECT
INSERT
UPDATE
Ключевые поля: session_id, metrics_data, step_number
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: session_id, step_number, metrics_data
game-completed.php
SELECT
UPDATE
Ключевые поля: session_id, step_number, metrics_data
🔴 Критически важные поля:
session_id
Связь с сессией
metrics_data
JSON с данными метрик (деньги, репутация, доля рынка, технологии)
🔧 Структура таблицы:
metric_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
session_id
Тип: int
Ключ: MUL
Обязательное: Да
step_number
Тип: int
Обязательное: Да
metrics_data
Тип: json
Обязательное: Да
is_initial_state
Тип: tinyint(1)
По умолчанию: 1
recorded_at
Тип: datetime
Ключ: MUL
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
metric_id: 1
session_id: 4
step_number: 1
metrics_data: JSON: {
"cash": 50000000,
"revenue": 0,
"reputation": 50,
"tech_level": 50,
"fix... [обрезано]
comment:
is_initial_state: 1
recorded_at: 2025-10-23 11:07:13
Запись #2:
metric_id: 2
session_id: 4
step_number: 1
metrics_data: JSON: {
"cash": 50000000,
"revenue": 0,
"reputation": 50,
"tech_level": 50,
"fix... [обрезано]
comment:
is_initial_state: 0
recorded_at: 2025-10-23 13:53:32
Описание: Накопленные эффекты решений
🔧 Структура таблицы:
effect_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
session_id
Тип: int
Ключ: MUL
Обязательное: Да
effect_name
Тип: varchar(100)
Ключ: MUL
Обязательное: Да
effect_type
Тип: enum('permanent','temporary','step_modifier')
source_step
Тип: int
Обязательное: Да
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
effect_id: 1
session_id: 13
effect_name: reputation
effect_value: 0
effect_type: permanent
duration_steps: 0
source_step: 1
source_choice_id: 3
expires_at:
created_at: 2025-10-26 22:17:39
Запись #2:
effect_id: 2
session_id: 13
effect_name: base_sales_volume
effect_value: 25000
effect_type: permanent
duration_steps: 0
source_step: 1
source_choice_id: 3
expires_at:
created_at: 2025-10-26 22:17:39
Описание: Правила ветвления между шагами
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: source_choice_id, effect_type, effect_details
🔧 Структура таблицы:
rule_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
condition_type
Тип: enum('always','has_effect','has_flag','metrics_check')
effect_type
Тип: enum('modifier','unlock','block','set_flag','custom_formula')
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
rule_id: 1
source_choice_id: 1
target_step_id: 2
target_choice_id:
condition_type: always
condition_value:
effect_type: modifier
effect_details: JSON: {
"price_increase_penalty": -5
}
priority: 0
created_at: 2025-10-22 23:22:03
Запись #2:
rule_id: 2
source_choice_id: 2
target_step_id: 2
target_choice_id:
condition_type: always
condition_value:
effect_type: modifier
effect_details: JSON: {
"price_increase_penalty": 10
}
priority: 0
created_at: 2025-10-22 23:22:03
Описание: Внешние события и шоки
🔧 Структура таблицы:
event_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
event_id: 1
step_id: 2
event_type: shock
trigger_condition: JSON: {
"always": true
}
effects: JSON: {
"cost_increase": 0.200000000000000011102230246251565404236316680908203125,
"market_v... [обрезано]
description: Макроэкономический кризис: курс валюты упал, затраты н... [обрезано]
created_at: 2025-10-22 23:22:43
Запись #2:
event_id: 2
step_id: 4
event_type: risk_event
trigger_condition: JSON: {
"if_no_action": true
}
effects: JSON: {
"cash_impact": -15000000,
"reputation_impact": -20
}
description: Материализация рисков: срыв поставок или утечка данны�... [обрезано]
created_at: 2025-10-22 23:22:43
Описание: Флаги и состояния сессий
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: session_id, flag_name, flag_value
🔴 Критически важные поля:
session_id
Связь с сессией
flag_value
Значение флага в JSON
🔧 Структура таблицы:
flag_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
flag_name
Тип: varchar(100)
Ключ: MUL
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных:
Таблица пуста или не содержит данных
Описание: Комбинации выборов для мультивыбора
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: step_id, choice_keys, effects
🔧 Структура таблицы:
combo_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
combo_id: 1
step_id: 4
choice_keys: ["A", "B"]
effects: JSON: {
"cash": -12000000,
"reputation": 5,
"risk_coverage": 90
}
special_comment: Вы проявили дальновидность. Потратив значительные сре... [обрезано]
created_at: 2025-10-22 23:23:31
Запись #2:
combo_id: 2
step_id: 4
choice_keys: ["A", "C"]
effects: JSON: {
"cash": -17000000,
"financial_stability": 25
}
special_comment: Комбинированный подход: защита поставок и создание фи�... [обрезано]
created_at: 2025-10-22 23:23:31
Описание: Контекстные комментарии
📁 Используется в файлах:
cybertech-game-step.php
SELECT
INSERT
UPDATE
Ключевые поля: step_id, trigger_conditions, comment_text
🔧 Структура таблицы:
comment_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
comment_id: 1
step_id: 2
trigger_conditions: JSON: {
"previous_choice": "A"
}
comment_text: Повышение цен для премиум-бренда — это тонкая игра. Ва�... [обрезано]
comment_type: warning
priority: 10
created_at: 2025-10-22 23:24:02
Запись #2:
comment_id: 2
step_id: 2
trigger_conditions: JSON: {
"previous_choice": "B"
}
comment_text: Решение сохранить низкие цены, имея изначально низкую ... [обрезано]
comment_type: danger
priority: 10
created_at: 2025-10-22 23:24:02
Описание: Формулы расчета метрик
🔧 Структура таблицы:
formula_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
formula_id: 1
step_id: 2
metric_name: cash
calculation_formula: previous.cash + (previous.base_sales_volume * price * margin_multiplier * random(0.8, 1.2)) - previo... [обрезано]
description: Расчет денежных средств с учетом выручки и издержек
created_at: 2025-10-22 23:24:25
Запись #2:
formula_id: 2
step_id: 2
metric_name: market_share
calculation_formula: previous.market_share + (sales_volume / total_market_size * 100)
description: Расчет доли рынка
created_at: 2025-10-22 23:24:25
Описание: Глобальные параметры сценариев
🔧 Структура таблицы:
param_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
created_at
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных (первые 2 записей):
Запись #1:
param_id: 1
scenario_id: 1
param_name: total_market_size
param_value: 500000
description: Общий объем рынка умных колонок в штуках
created_at: 2025-10-22 23:24:57
Запись #2:
param_id: 2
scenario_id: 1
param_name: base_product_price
param_value: 300
description: Базовая цена продукта в у.е.
created_at: 2025-10-22 23:24:57
Описание: Финальные результаты игр
🔧 Структура таблицы:
result_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
session_id
Тип: int
Ключ: UNI
Обязательное: Да
player_name
Тип: varchar(100)
Обязательное: Да
company_name
Тип: varchar(100)
Обязательное: Да
total_score
Тип: decimal(10,2)
Ключ: MUL
Обязательное: Да
final_metrics
Тип: json
Обязательное: Да
completed_at
Тип: datetime
Ключ: MUL
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных:
Таблица пуста или не содержит данных
Описание: Аналитика использования
🔧 Структура таблицы:
analytics_id
Тип: int
Ключ: PRI
Обязательное: Да
Дополнительно: auto_increment
scenario_id
Тип: int
Ключ: MUL
Обязательное: Да
step_id
Тип: int
Ключ: MUL
Обязательное: Да
choice_id
Тип: int
Ключ: MUL
Обязательное: Да
average_score
Тип: decimal(10,2)
По умолчанию: 0.00
last_updated
Тип: datetime
По умолчанию: CURRENT_TIMESTAMP
Дополнительно: DEFAULT_GENERATED
📊 Пример данных:
Таблица пуста или не содержит данных
💻 Файлы PHP кода
Анализ использования таблиц БД в каждом файле
cybertech-auth.php
Авторизация игроков
✅ СУЩЕСТВУЕТ
Размер
8.94 KB
Строк кода
325
SQL запросов
9
Смешанных линий
5
🗃️ Таблицы БД, используемые в этом файле:
sessions
SELECT
INSERT
UPDATE
Поля: session_id, user_id, player_name, status, current_step
metrics
SELECT
INSERT
UPDATE
Поля: session_id, metrics_data, step_number
cybertech-game-step.php
Логика игровых шагов
✅ СУЩЕСТВУЕТ
Размер
27.4 KB
Строк кода
546
SQL запросов
51
Смешанных линий
54
⚠️ Внимание: Высокая сложность кода (смешана логика и представление)
🗃️ Таблицы БД, используемые в этом файле:
sessions
SELECT
INSERT
UPDATE
Поля: session_id, current_step
steps
SELECT
INSERT
UPDATE
Поля: step_id, scenario_id, step_number, title, situation_text, allow_multiple_choices
choices
SELECT
INSERT
UPDATE
Поля: choice_id, step_id, choice_key, title, description, risks, immediate_effects
progress
SELECT
INSERT
UPDATE
Поля: session_id, step_id, choice_id
metrics
SELECT
INSERT
UPDATE
Поля: session_id, step_number, metrics_data
flags
SELECT
INSERT
UPDATE
Поля: session_id, flag_name, flag_value
context_comments
SELECT
INSERT
UPDATE
Поля: step_id, trigger_conditions, comment_text
choice_combinations
SELECT
INSERT
UPDATE
Поля: step_id, choice_keys, effects
branching_rules
SELECT
INSERT
UPDATE
Поля: source_choice_id, effect_type, effect_details
game-completed.php
Финальные результаты
✅ СУЩЕСТВУЕТ
Размер
16.25 KB
Строк кода
323
SQL запросов
16
Смешанных линий
20
🗃️ Таблицы БД, используемые в этом файле:
sessions
SELECT
UPDATE
Поля: session_id, status
progress
SELECT
UPDATE
Поля: session_id, step_id, choice_id
steps
SELECT
UPDATE
Поля: step_id, step_number, title
choices
SELECT
UPDATE
Поля: choice_id, title, description, choice_key, immediate_effects
metrics
SELECT
UPDATE
Поля: session_id, step_number, metrics_data