Je suis nouveau à la conception de base de données si désolé si c'est une question évidente débutant. J'utilise python et sqlalchemy bien que je ne pense pas que cela soit pertinent (l'exemple de code ci-dessous est du code psuedo), bien que cela puisse être faux. J'ai examiné certaines questions précédentes et je n'ai pas vu cela traité. Quoi qu'il en soit, à la question. L'objectif ici est de développer une base de données d'informations NBA qui aura des informations sur tous les jeux joués et aussi des scores de boîte pour chaque chaque joueur, pour chaque jeu. Il existe plusieurs façons de concevoir cette base de données.Base de données Design NBA
Game(game_id, date, home_name, away_name, score)
Box_Score(game_id, player_name, date, points, rebounds)
Dans cette situation, si je veux obtenir tous les jeux les Los Angeles Lakers joués je peux faire
query(Game).filter(home_name=="lakers" or away_name=="lakers").all()
query(Box_Score).filter(player_name="kobe bryant")
Voici la deuxième option pour savoir comment concevoir cette base de données:
Game(game_id, date, home_name=(foreignkey=Team.team_name), away_name, score)
Box_Score(game_id, player_name=foreignkey=Player.player_name), date, points, rebounds)
Team(team_name, home_games=relationship("Game"))
Player(player_name, box_scores=relationship("Box_Score"))
Alors je peux faire
query(Team).filter(name=="lakers").first().games
query(Player).filter(name=="kobe bryant").first().box_scores
D'une part, il semble que le but de l'utilisation d'une base de données relationnelle est de l'installer comme dans la situation # 2. D'un autre côté, je ne suis pas sûr de la fonctionnalité supplémentaire que cela me donne. Donc je suppose que ma question est, quelle conception recommandez-vous? Y a-t-il des avantages ou des inconvénients à l'une ou l'autre des conceptions qui deviendront apparents au bout du compte, ce que je ne peux pas encore voir? Et si vous recommandez la conception simple # 1 qui n'utilise pas les relations de table, pourquoi est-ce que je stocke une quantité décente d'informations liées mais n'ai pas besoin d'utiliser la base de données relationnelle? Merci!!
pourquoi était-ce downvoted ce qui est stupide à propos de ma question? – appleLover
Si vous êtes toujours intéressé à en discuter, c'est un projet sur lequel je travaille et j'ai trouvé un design mais plus normalisé que ce que vous aviez initialement indiqué – MageeWorld