2010-09-10 2 views

Répondre

1

Est-ce que vous empêche de créer un champ nommé « round_order »? Connaissez-vous la commande?

0

stocker simplement un champ « chiffre rond » dans le tableau des correspondances semble être suffisant. Vous pouvez assigner les nombres ronds dans l'ordre inverse, à savoir: 1 pour la finale, 2 pour les demi-finales, 3 pour les quarts de finale, et ainsi de suite, au lieu de 1 pour le premier tour, 2 pour le second, etc.

Ceci a l'avantage supplémentaire où vous pouvez obtenir immédiatement des informations à partir du nombre rond. Par exemple, faire une requête pour toutes les demi-finales sera très facile ... WHERE round_number = 2, et sera indépendant du total des rondes du tournoi.

0

En fait, je ne suis pas sûr que je suis d'accord. Si vous avez un champ "rond" dans la table "match", vous introduisez la possibilité de problèmes d'intégrité, car vous vous retrouvez avec une rangée dans votre table pour chaque tour (ce qui n'a pas vraiment de sens comme cela est la table "match", donc il ne devrait y avoir qu'une seule ligne par match)

Si vous faites cela, chaque ligne pourrait potentiellement avoir un ensemble différent de participants, ce qui n'est probablement pas votre intention et indique que vous devriez touche "ronde" sur une autre table. D'autres problèmes d'intégrité introduits seraient le "champ Winner", par ex. Si vous indiquez le vainqueur du tour dans les tables de match, comment savez-vous qui a gagné le match? Si vous mettez simplement le vainqueur du match sur toutes les lignes, vous perdez l'information sur qui a gagné le tour.

Pour être correctement normalisée, créer, par exemple une table "MatchRound".

Donnez votre table match une clé primaire (appeler Match_Id par exemple) puis votre table ronde pourrait avoir: Round_Id (autonumber ou clé primaire unique similaire), Match_Id (ce qui est une clé étrangère à la table de correspondance) et peut-être RoundOrder et RoundType (Final, Semi, etc.). Vous êtes probablement d'accord pour ajouter Winner et Loser à cette table.

Alors que deux purposing le champ round_number pour semis/etc quarts travailleraient, il ne fonctionne que si la topologie est cohérente à travers les matchs, par exemple il y a toujours des quarts de finale? Certains sports accumulent des points par exemple, et n'ont ensuite qu'une finale. Pour cette raison, je créerais simplement un champ de texte RoundType.

0

Est-ce que la parenthèse est semée, comme dans Tennis (ou le tournoi March Madness), et si oui, aurez-vous besoin de répondre à des questions comme "Dans quel round, Federer et Nadal se joueront-ils?" Ensuite, vous devez stocker le support as a tree dans la base de données.

+0

Peut-être que? C'est pour un outil assez simple, où quelqu'un serait en mesure d'entrer les noms des participants, les jumeler, puis pouvoir jumeler les gagnants de chaque match encore et encore jusqu'à ce qu'il ne reste que le gagnant. – VWD

Questions connexes