Структура базы данных для WarGames - Игроки - Награды - PullRequest
0 голосов
/ 05 февраля 2020

Контекст : - Мой клан регулярно участвует в онлайн-турнирах PvP и получает вознаграждение внутриигровой валютой, а иногда и реальными деньгами в зависимости от результата. Мне нужно следить за тем, кто участвовал в какую дату. Я создал таблицу, которая содержит данные об игроках, которые должны быть обновлены, если кто-то присоединится или покинет мой клан. Каждая военная игра - 15 на 15. Мы ежедневно играем в 4 военные игры, каждая из которых состоит из 7 сражений с участием игроков моей команды и противников. Так что это 15 записей на военную игру в день .

Мой вопрос

1- Как создать таблицу, которая может отслеживать о военных играх, дате и времени, результате и участвующих игроках.

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

Я использую Oracle 11g для своей базы данных.

1 Ответ

0 голосов
/ 07 февраля 2020

Вы можете настроить таблицы следующим образом:

Игрок

idPlayer    PK
Name
cell#
email
... other fields that define a player

Клан

idClan      PK
Name

ClanAsPlayer

idClan      FK Clan.idClan
idPlayer    FK Player.idPlayer

WarGames

idWarGame   PK
Date
Time

Битва

WarGames   FK WarGames.idWarGame
Winner     FK Player.idPlayer
Looser     FK Player.idPlayer

Награда

idReward    PK
Reward      <-- what the reward is

PlayerAsReward

idPlayer    FK Player.idPlayer
idReward    FK Reward.idReward
  • Игрок: не использовать имя в качестве первичного ключа, так как 2 игрока могут иметь одинаковое имя
  • Clan: какие у вас кланы. Если у вас есть только один (ваш), это может быть простое поле в таблице игроков
  • ClanAsPlayer: связать игроков с кланами. Если есть только один клан, забудьте эту таблицу.
  • Битва: в WarGame много сражений. Так что свяжите WarGame с каждой битвой. Поскольку битва не может быть связана более чем с одной WarGame, вы просто связываете WarGame с битвой.

  • Чтобы узнать, какие игроки присутствовали в WarGame, вы запрашиваете через таблицу ссылок битвы.

  • ИЛИ, если в WarGame могут присутствовать игроки, даже если они не участвуют в сражениях, вы можете добавить таблицу ссылок WarGamesAsPlayer.

  • PlayerAsReward: эта таблица должна быть заполнена приложением, основываясь на некоторых логиках c, которые вы реализуете

  • Вы используете таблицы ссылок (например, PlayerAsReward), когда между таблицами есть отношение к n. Как и этот, любой игрок может получить любые награды.

Это поможет вам начать работу с разработчиком базы данных или программным обеспечением для моделирования.

...