Является ли денормализованный стол приемлемым вариантом в этом случае?

0

Мне хотелось бы узнать ваше мнение о том, с какой структурой таблиц идти.

Скажем, это таблица для хранения информации игроков nba. Таким образом, у вас будут id, name, team_id и т.д.

Но, чтобы сохранить игроков, играющих позиций (разыгрывающий, Power Forward, центр и т.д.) я должен создать отдельную Player_Position таблицу, которая соединяет Player_ID к Position?

Таблица игроков:

ID      Name       Team_ID
-------------------------
1    LeBron James    10
2    CJ McCollum     5

Таблица Player_Position:

Player_ID  Position
-------------------
  1          PG
  1          SF
  1          PF
  2          PG
  2          SG

Другой вариант - иметь столбцы PG, SG, SF, PF, C качестве столбцов в таблице Players поэтому, если игрок играет PG и SG, эти поля будут равны 1 и другие 0.

Таблица игроков:

ID     Name          Team_ID   PG  SG  SF  PF  C
-------------------------------------------------
1   LeBron James      10       1   0   1   1   0
2   CJ McCollum       5        1   1   0   0   0

Player имеет по крайней мере 1 позицию, может быть кратным, (может быть все 5). Никакие новые позиции не будут изобретены позже, ни одна из них не будет удалена, только те 5.

Теги:
database
database-design
database-schema

1 ответ

0

Рассмотрим этот единственный столбец:

positions SET('PG', 'SG', 'SF', 'PF', 'C') NOT NULL

Подумайте о запросах на установку/изменение/выборку данных. Затем прочитайте документы, чтобы увидеть искаженный способ использования SET.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню