Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 15.02.2018
Сообщений: 2
1

Количество таблиц для сайта-игры (PHP+MySQL)

15.02.2018, 04:02. Показов 666. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Разрабатываю сайт-движок для игры в текстовые квесты специфического внутреннего формата. На стороне сервера использую PHP и MySQL.

Когда пользователь выбирает "квест" и начитает новую игру, для этой игровой сессии генерируется "окружение". Размер окружения достаточно большой - порядка 5000-10000 элементов. Каждый элемент имеет набор параметров/свойств/состояний. Разных параметров есть несколько десятков, хотя для каждого отдельного элемента актуальны лишь 5-10 из них. "Вес" одного элемента (сумма "размеров" полей) ожидается на уровне 100-500 байт.
Структура окружения иерархическая. Условный центральный узел распадается на несколько крупных ветвей ("локаций"), внутри которых идет дальнейшее дробление.
Все параметры могут меняться, то есть "постоянные" параметры отсюда уже выделены в отдельную "таблицу шаблонов/классов".

На каждом этапе пользователю отправляется информация об одной из "локаций" (500-1000 элементов со всеми свойствами и структурой). Пользователь выбирает некоторое действие и посылает его на сервер. Сервер обрабатывает действие, обновляет состояние некоторых элементов (как правило, 10-15 штук, возможно изменение иерархии). После этого пользователь снова получает новую порцию информации.

Сама игровая сессия не лимитирована во времени и может продолжаться на протяжении многих дней (а то и месяцев). Если пользователь начинает новую партию, старое "окружение" удаляется.

Хранить текущее "окружение" планирую в базе данных. Соответственно, у меня возникает вопрос о структуре базы. Пока вижу два принципиальных варианта:
1. Для каждого пользователя создавать отдельную таблицу, в которой хранить элементы текущей игровой сессии.
2. Держать одну большую таблицу для всех пользователей, прикладывая к элементам id пользователя или игровой сессии.

Вариант хранить всю структуру в одном поле (XML?) откинул из-за больших затрат на парсинг. Разве что для сохранений можно подумать...

Поискал в сети подобные проблемы - почти везде советуют реализовывать второй вариант. Но тут вроде как специфика толкает к первому. Во-первых, сразу много записей на каждую игровую сессию. Во-вторых, игровая сессия отдельного игрока вообще никак не связана с остальными. В третьех, обработка окружения на каждом этапе идет достаточно интенсивная, делается выборка из порядка 10% элементов.

Прошу помочь советом. К какому варианту лучше склоняться?
И вообще, насколько жизненоспособен план в описываемой части с учетом данных оценок?
Может, подскажите какие подводные камни, которых я пока не вижу.

Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2018, 04:02
Ответы с готовыми решениями:

Хостинг для сайта(php, mysql)
подскажите пожалуйста хороший хостинг для сайта(php, mysql).

Настройка PHP для сайта (apache2,php7,mysql)
Веб сервер (apache) работает, страница в формате html открывает При попытке открыть страничку в...

Собираю группу программистов знающих PHP & MySQL, для создания новой online игры
Друзья, Я пришел с миром. Собираю группу программистов знающих PHP & MySQL, для создания новой...

Требуется программист на удаленную работу для создания сайта на PHP+MySQL
Требуется программист для создания сайта по аренде недвижимости. Основный модули сайта: -...

2
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
15.02.2018, 22:05 2
Таблицы не стоит динамически создавать
Лучше завести пользователя, и писать в общую

Зы вообще же 10к элементов это очень много
0
0 / 0 / 0
Регистрация: 15.02.2018
Сообщений: 2
16.02.2018, 02:10  [ТС] 3
А если все же разделить структуру на 10-20 "локаций" и записывать каждую из них в одно большое текстовое поле на 500-1000 элементов. Стоит ли регулярный парсинг такой части экономии на строках таблицы?
0
16.02.2018, 02:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2018, 02:10
Помогаю со студенческими работами здесь

APACHE+PHP+MYSQL+PHPMYADMIN эта связка актальна для динамического сайта?
APACHE+PHP+MYSQL+PHPMYADMIN эта связка актуальна для динамического сайта сколько искал инфы...

Для браузерной онлайн игры нужны: 1 программист (php+mysql+флеш), 1 дизайнер (флеш,образы,оружие и т.д.)
Приветствую, для браузерной онлайн игры требуются: 1 программист (php+mysql+флеш), 1 дизайнер...

сумма таблиц mysql на php
Здравствуйте, уважаемые форумчане. Я начинающий программист php. Помогите мне пожалуйста написать...

Обработка таблиц MySQL в PHP
Подскажите программное обеспечение для обработки таблиц MySQL на экране монитора, на страницах PHP.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru