J’utilise la firebase database mysql. J’ai une confusion entre clé primaire et clé unique.
Aidez-moi s’il vous plaît où dois-je créer la clé primaire et unique. Je veux dire dans quelle situation nous créons une clé unique ou une clé primaire.
Clé primaire:
NULL
– par exemple, MySQL ajoute NOT NULL
Clé unique:
NULL
NULL
et peut ne pas être unique Clé unique (UK) : il s’agit d’une colonne ou d’un groupe de colonnes pouvant identifier un caractère unique dans une rangée.
Clé primaire (PK) : il s’agit également d’ une colonne ou d’un groupe de colonnes pouvant identifier un caractère unique dans une rangée.
Ainsi, la clé primaire est simplement un autre nom pour une clé unique, mais l’implémentation par défaut dans SQL Server est différente pour la clé principale et la clé unique.
Par défaut:
Cela dépend vraiment de votre objective lorsque vous décidez de créer un UK ou un PK. Il s’ensuit une analogie comme “S’il y a une équipe de trois personnes, toutes sont des pairs, mais il y en aura une qui sera une paire de pairs: PK et UK ont une relation similaire.” Je suggère de lire cet article: L’exemple donné par l’auteur peut ne pas sembler approprié, mais essayez d’en avoir une idée globale.
http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html
Pour une organisation ou une entreprise, il existe de nombreuses entités physiques (telles que des personnes, des ressources, des machines, etc.) et des entités virtuelles (leurs tâches, transactions, activités). En règle générale, les entresockets doivent enregistrer et traiter les informations de ces entités commerciales. Ces entités métier sont identifiées dans un domaine métier complet par une clé.
Selon les outlook du SGBDR, Key (aka Candidate Key) est une valeur ou un ensemble de valeurs qui identifie de manière unique une entité.
Pour une table de firebase database, il y a tellement de clés qui existent et peuvent être éligibles pour la clé primaire. Pour que toutes les clés, clés primaires, clés uniques, etc. soient collectivement appelées Clé Candidate. Cependant, DBA a sélectionné une clé de la clé candidate pour rechercher des enregistrements appelée clé primaire.
Différence entre clé primaire et clé unique
1. Comportement: La clé primaire est utilisée pour identifier une ligne (enregistrement) dans une table, alors que la clé unique est d’empêcher les valeurs en double dans une colonne (à l’exception d’une entrée nulle).
2. Indexation: Par défaut, SQL-engine crée un index clusterisé sur la clé primaire s’il n’existe pas et sur un index non clusterisé sur la clé unique.
3. Nullability: la clé primaire n’inclut pas les valeurs Null, alors que Unique-key peut le faire.
4. Existence: une table peut avoir au plus une clé primaire, mais peut avoir plusieurs clés uniques.
5. Possibilité de modification: vous ne pouvez pas modifier ou supprimer les valeurs primaires, mais les valeurs de clé unique peuvent l’être.
Pour plus d’informations et d’exemples:
Une clé primaire doit être unique.
Une clé unique ne doit pas nécessairement être la clé primaire – voir la clé candidate .
En d’autres termes, il peut y avoir plus d’une combinaison de colonnes sur une table pouvant identifier de manière unique une ligne – une seule d’entre elles peut être sélectionnée comme clé primaire. Les autres, bien que uniques, sont des clés candidates.
Une clé primaire a la sémantique de l’identification de la ligne d’une firebase database. Par conséquent, il ne peut y avoir qu’une seule clé primaire pour une table donnée, alors qu’il peut y avoir plusieurs clés uniques.
De même, pour une même raison, une clé primaire ne peut pas être NULL (du moins dans Oracle, pas sûr des autres bases de données)
Comme il identifie la ligne, il ne devrait jamais changer. Changer les clés primaires causera inévitablement une douleur grave et probablement une damnation éternelle.
Par conséquent, dans la plupart des cas, vous voulez un identifiant artificiel pour la clé primaire qui n’est pas utilisé pour autre chose que l’identification de lignes individuelles dans la table.
D’autre part, les touches uniques peuvent changer autant que vous le souhaitez.
Une clé primaire est une clé unique.
Chaque table doit avoir au plus une clé primaire mais elle peut avoir plusieurs clés uniques. Une clé primaire est utilisée pour identifier de manière unique une ligne de table. Une clé primaire ne peut pas être NULL
car NULL
n’est pas une valeur.
Vous pouvez trouver des informations détaillées à partir de: http://www.dotnet-sortingcks.com/Tutorial/sqlserver/V2bS260912-Difference-between-Primary-Key-and-Unique-Key.html
La clé primaire et la clé unique sont utilisées pour appliquer l’unicité d’une colonne. Alors, quand choisissez-vous l’un sur l’autre?
Une table ne peut avoir qu’une seule clé primaire. Si vous souhaitez appliquer l’unicité sur deux colonnes ou plus, nous utilisons une contrainte de clé unique.
Différence entre la contrainte de clé primaire et la contrainte de clé unique?
1. Une table ne peut avoir qu’une seule clé primaire, mais plusieurs clés uniques
2. Les clés primaires n’autorisent pas null
valeurs null
, alors que les clés uniques permettent une valeur null
Alter Table Table_Name Add Constraint Constraint_Name Unique/Primary Key(Column_Name)
Si la conception de votre firebase database est telle qu’elle n’a pas besoin de clé étrangère, vous pouvez utiliser la clé unique ( mais n’oubliez pas que la clé unique autorise une valeur nulle ).
Si vous demandez une clé étrangère à la firebase database, alors vous quittez sans avoir à choisir la clé primaire.
Pour voir la différence entre la clé unique et la clé primaire, cliquez ici
Simplement la clé primaire est unique et ne peut pas être nulle, unique peut être nul et peut ne pas être unique.
L’objective principal de la clé primaire est de fournir un moyen d’identifier chaque enregistrement de la table.
La clé primaire permet d’identifier la ligne à l’aide des données de la ligne. Une clé primaire peut être basée sur une ou plusieurs colonnes, telles que le prénom et le nom de famille; Cependant, dans de nombreux modèles, la clé primaire est un numéro généré automatiquement à partir d’une colonne d’identité.
Une clé primaire présente les caractéristiques suivantes:
Une clé unique est également appelée contrainte unique. Une contrainte unique peut être utilisée pour garantir que les lignes sont uniques dans la firebase database.
Ne faisons-nous pas déjà cela avec la clé primaire? Oui, nous le faisons, mais une table peut avoir plusieurs ensembles de colonnes que vous voulez uniques.
Dans SQL Server, la clé unique présente les caractéristiques suivantes:
source: ici
Clé unique: – Il doit être utilisé lorsque vous devez donner une valeur unique. Dans le cas d’une clé unique, cela signifie que les valeurs nulles sont également autorisées. Les clés uniques sont les clés uniques et non similaires dans cette colonne, par exemple le nom de votre animal. .il ne peut rien y avoir de null et si vous posez la question dans le contexte de la firebase database, il faut noter que chaque valeur NULL est différente d’une autre valeur nulle dans la firebase database. EXCEPT-SQL Server où null = null est true
clé primaire: – Elle doit être utilisée lorsque vous devez identifier de manière unique une ligne. primaire est la clé qui est unique pour chaque ligne dans une contrainte de firebase database, c’est qu’elle n’autorise pas la valeur null.Vous avez peut-être vu que la firebase database avoir une colonne qui est auto-incrémentée et c’est la clé primaire de la table. De plus, il peut être utilisé comme clé étrangère dans une autre table.exemple peut être orderId sur une table de commandes , billId dans une table de factures .
maintenant revenir à la situation quand l’utiliser: –
1) clé primaire dans la colonne qui ne peut pas être nulle dans la table et que vous utilisez comme clé étrangère dans une autre table pour créer une relation
2) tableau de clés unique où rien n’affecte dans la table ou dans toute la firebase database si vous prenez la valeur NULL pour une colonne particulière comme des collations dans le restaurant, il est possible que vous ne preniez pas de collations dans un restaurant