Je suis en train de concevoir un schéma pour contenir les données des joueurs dans un jeu basé sur un navigateur.Théorie de la base de données relationnelle et clés
J'ai trois relations. Deux d'entre eux ont au moins deux clés candidates, cependant la troisième n'a que trois attributs: {playerId, message, date}
Cette relation ne contiendra pas de lignes uniques car il existe une relation 1..1: 0 .. * , ce qui signifie qu'il peut y avoir n'importe quel nombre de tuples de nouvelles pour chaque joueur. Je n'ai pas besoin d'être capable d'identifier de manière unique un tuple et aucun des attributs ne peut en fait être candidat, de toute façon.
Ma question est la suivante: Je comprends que le modèle relationnel stipule qu'il ne peut pas y avoir de tuples en double et que chaque relation doit avoir une clé. Mon schéma ci-dessus contredit ces deux contraintes mais fonctionne pour mon but. Je sais que je pourrais simplement ajouter un attribut d'index (comme un ID) qui est unique, mais cela semble inutile. Est-ce que je manque quelque chose?
Merci pour votre temps.
Oui, vous avez raison. J'ai pensé à une clé composite mais quand aucun attribut n'est une clé candidate, ce n'est pas possible. Y at-il un réel avantage à rendre chaque tuple unique avec une clé primaire id, dans ce cas? – Lee
L'avantage de la clé primaire est de pouvoir identifier chaque tuple. Si vous n'avez pas besoin d'être capable de vous identifier pour la suppression ou l'édition des raisons, alors vous n'en avez pas besoin pour faire fonctionner votre application. Mais je définirais toujours une clé primaire pour avoir un design "propre". – steven
OK steven, ça a du sens. Merci pour votre contribution. – Lee