Как я могу сделать так, чтобы поле в таблице ссылалось на всю другую таблицу? (MySQL)

#mysql

#mysql

Вопрос:

Что я собираюсь сделать, так это создать таблицу команд, а затем у каждой команды будет ссылка на свою таблицу игроков. Так, например, если в команде A есть игроки x, y и z, я могу ссылаться на них всех из записи команды A в таблице. Команды имеют переменный размер от 8-12.

Что-то вроде того, что у меня есть прямо сейчас, это:

 CREATE TABLE team_a_players(
    PlayerName varchar(255),
    PlayerELO int
);

CREATE TABLE teams(
    TeamName varchar(255),
    TeamELO int,
    TeamRank int
);
  

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

Другой подход, который я рассматривал, заключался в том, чтобы иметь всего 2 таблицы, одну для всех команд и одну для всех игроков, и чтобы таблица players имела внешний ключ, связанный с командой, к которой принадлежит игрок. Однако я в порядке, делая это в любом случае.

Комментарии:

1. Здравствуйте. Не имеет особого смысла создавать новую таблицу каждый раз, когда вы добавляете новую команду. Создайте таблицу с именем players и добавьте поле team_id , которое ссылается на id team таблицу с помощью внешнего ключа.

2. Каждая таблица должна иметь автоматически увеличивающийся столбец первичного ключа integer. Я использую тип int (11) для этого столбца. Как сказал @solarc, в таблице players также должен быть столбец, который ссылается на ключ таблицы teams. Еще одна вещь, которую следует учитывать, если игрок может выступать более чем в одной команде (в другой лиге, в другом виде спорта), тогда вам нужно будет установить отношение «многие ко многим» с третьей таблицей ссылок. Если это возможно, я могу показать вам, как это можно было бы сделать.

3. Отлично, спасибо! Ссылка на команду от игрока кажется более простым решением. У каждого игрока будет только одна команда, так что все должно быть в порядке!

4. @JashanjotDhilon это называется нормализацией базы данных, вы можете прочитать больше об этом здесь