J'ai une table « Messages » qui a les champs suivants (correspondant à cette question):Faire un index unique qui est techniquement pas unique
SenderID | int
DateSent | DateTime
Je me demandais de créer un index unique sur ces deux champs et avez une question. Techniquement, cette combinaison de champs n'est pas une combinaison unique (c.-à-d., Par conception, il n'y a rien qui l'arrête), mais ce sera pratiquement le cas. L'application qui utilise cette table est une application web et un expéditeur ne pourra jamais envoyer des messages immédiatement les uns après les autres en raison de l'actualisation de la page, etc.
Est-il acceptable de rendre cet index unique?
N'accélère-t-il pas les résultats de requête ayant un index unique? – ajbeaven
Sûrement c'est le cas. Mais si vous dites 'SenderID' +' DateSent' peut avoir des doublons (je suppose dans de rares circonstances), et c'est acceptable, la création d'un index unique empêchera d'insérer un enregistrement qui viole une contrainte unique. – a1ex07
En théorie, il peut être pratiquement impossible pour quelqu'un d'envoyer 2 messages en une seconde - ie. Après l'envoi du premier message, ils doivent accéder à la page "Créer un message", remplir au moins 50 caractères pour un message valide, sélectionner un destinataire et appuyer sur Envoyer avant que le système ne puisse créer une autre ligne. – ajbeaven