eConti - программирование в вопросах и ответах

Структура базы данных CakePHP для игры с 2 и более игроками

Мне нужно создать БД для игры, а для активных игр мне нужно сохранить 2 идентификатора пользователя из таблицы пользователей.

Обычно я бы использовал поле user_id в моей таблице activegames, чтобы иметь ссылку, но как мне сделать это с двумя пользователями одновременно? Например, user_id1 и user_id2?

Сохранять структуру базы данных CakePHP в соответствии с соглашением?

Тот же вопрос по поводу выбранного оружия для активной игры. Только один из них будет weapon_id, но игрок может выбрать до 4 из них? id_оружия1, id_оружия2, id_оружия3, id_оружия4?

Какова здесь лучшая практика?

Я с нетерпением жду ваших ответов! С уважением!

31.01.2014

  • Конечно, weapons принадлежит player? Поэтому поля weapon_idx не нужны в таблице атак, так как они могут быть назначены как equipped с помощью player. 31.01.2014
  • Также, если в атаке 2 ИЛИ БОЛЕЕ игроков, потребуется еще один стол. Скажем... player_to_attack, что было бы отношением 1-n. 31.01.2014
  • В моем случае это просто 1:1 отн. Активная игра содержит только 2 игроков и их выбранное оружие. 04.02.2014

Ответы:


1

Вы думаете в отношениях 1-1. Попробуйте 1-n отношений. Ссылочная таблица, содержащая два столбца. Первый — game_id, второй — player_id.

Эта таблица может иметь любое количество строк для одной игры. Таким образом, нет определенного количества игроков.

стол игрока

id    name
1     John Doe 
2     jane Doe

игровой стол

id    title
1     A special game

таблица отношений game_players

game_id   player_id
1         1
1         2

Вы можете сделать то же самое с оружием (или чем-нибудь еще)

31.01.2014
Новые материалы

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

Время расцвета закончилось
Большую часть своей карьеры в индустрии программного обеспечения программисты работали с головой в песок. Успех в отрасли требует навыков презентации и обучения других. Ценность улучшенных..

Будущее сельского хозяйства: новый уровень производительности с современными технологиями
По мере роста населения мира растет и спрос на продукты питания. Фермеры сталкиваются с растущим давлением необходимости повышать урожайность и максимизировать производительность, манипулируя..

Состояние совместной фильтрации в 2022 году, часть 1
ResBeMF: Улучшение прогнозируемого охвата совместной фильтрации на основе классификации (arXiv) Автор: Анхель Гонсалес-Прието , Авраам Гутьеррес , Фернандо Ортега , Рауль Лара-Кабрера..

Зачем изучать PYTHON в 2022 году !
Python — востребованный, доступный язык программирования с активным, постоянно растущим сообществом пользователей. Для тех, кто хочет сменить профессию в мире технологий с помощью..

Решение капч с помощью Puppeteer
Это руководство предназначено для текстовых кодов, а не для reCAPTCHA Google (см. конец этого сообщения). Требования: Антикапча или любой другой сервис по разгадыванию капчи. Модуль..

7 встроенных библиотек Python, которые необходимо знать
7 встроенных библиотек Python, которые необходимо знать Стандартная библиотека Python значительно упрощает жизнь программистов, предоставляя широкий набор функций. Мы выбираем несколько..