Мне хотелось бы узнать ваше мнение о том, с какой структурой таблиц идти.
Скажем, это таблица для хранения информации игроков 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.
Рассмотрим этот единственный столбец:
positions SET('PG', 'SG', 'SF', 'PF', 'C') NOT NULL
Подумайте о запросах на установку/изменение/выборку данных. Затем прочитайте документы, чтобы увидеть искаженный способ использования SET
.