Contexte: Les utilisateurs créent des défis pour un sujet, niveau, dans une ville, un certain jour à un moment donné.Avoir des enregistrements en double sur une base de données, est toujours faux?
L'utilisateur peut avoir plus d'un défi du même sujet, du même niveau, dans la même ville, le même jour et le même temps (les défis étant joués simultanément).
Les défis peuvent être créés un à la fois.
Sur ma table actuelle, j'ai des enregistrements en double pour cette situation (avec une valeur de clé primaire différente). Est-ce mal? Comment devrait-il être?
Tableau défis:
id_challenge INT (pk auto increment)
id_subject INT
id_level INT
id_city INT
id_user INT
date DATE
time TIME
comment VARCHAR(100)
En réalité, les entités que vous essayez de modéliser sont des éléments individuellement identifiables et les faits que votre base de données enregistre à leur sujet sont des faits distincts. Si une table duplique ces faits, alors ce n'est pas une représentation vraie et précise de la réalité. – sqlvogel
Si les valeurs de clé primaire diffèrent, les lignes ne sont pas techniquement "dupliquées". La vraie question, bien sûr, est de "replier" plusieurs lignes de ce genre en une, et cela est déterminé par vos règles métier (c'est-à-dire qu'aucune des deux options n'est "absolument" erronée - cela dépend de ce que vous essayez d'accomplir). –