Как спроектировать мою базу данных? - PullRequest
1 голос
/ 09 марта 2012

Я хочу создать базу данных футбольных матчей.

Очевидно, что имеем:

  • Страны (Нидерланды, Германия, (но также и Европа))
  • Соревнования (Eredivisie, Бундеслига, Лига Европы УЕФА)
  • Команды (ФК Твенте, Бавария Мюнхен, Атлетико Мадрид)
  • Игроки (Луук де Йонг, Мануэль Нойер, Тьяго Мендес)
  • Матчи (ФК Твенте - ПСВ, Бавария - Леверкузен и др.)
  • События (Гол на 40-й минуте забил Луук де Йонг)

Я использую Dezign, в котором я создал следующую схему:

enter image description here

Очевидно, что соревнование связано со страной, игрок с командой и т. Д.

Но тогда возникают некоторые проблемы. Событие принадлежит Матчу и Игроку. Таким образом, Событие может получить match_id и player_id. Но тогда любой игрок любой команды мог «забить» в матче, к которому он не принадлежит (игрок команды C мог забить в матче между командой A и командой B). Как я могу ограничить это, например?

Кроме того, команда может участвовать как в обычном, так и в Лиге чемпионов. Таким образом, простого соревновательного идентификатора в сущности «Команда» будет недостаточно.

А вы предлагаете какие-нибудь другие мысли?

Редактировать в ответ на Филипп enter image description here

1 Ответ

1 голос
/ 09 марта 2012

Вам не хватает сущности, чтобы выразить Lineup(team, match) вместе с LineupPosition (lineup, player).

Затем можно связать Event с LineupPosition (конкретным игроком в конкретном матче), тем самым связываяваш Event на правильный Match, через LineupPosition -> Lineup -> Match.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...