J'ai lu à certains endroits que c'est une bonne pratique d'utiliser typiquement une clé primaire auto-incrémentée pour la plupart des tables MySQL, plutôt que de simplement se fier à un champ non-incrémenté qui sera appliqué pour être unique.Pour utiliser l'auto-incrémentation dans MySQL ou non?
Ma question concerne spécifiquement une table utilisateur et une table connectée par une clé étrangère. Voici le schéma:
TABLE Users {
id
name
...
}
TABLE Authors {
user_id (FK)
author_bio
}
Si la table authors avoir sa propre clé primaire auto-incrémentée aussi bien, ou doit-elle compter sur la clé étrangère user_id comme une clé primaire?
AUSSI
Y at-il des raisons de performances notables à ne pas utiliser l'ID auto-incrémentée comme primaire?
En utilisant la clé primaire de la table 'USERS' comme la clé primaire des' AUTEURS 'table suggère une relation 1: 1. Normalisation (3NF?) Dicte qu'il ne devrait pas y avoir deux tables dans cette situation. L'ajout d'une clé primaire séparée (autoincrément ou non) ne change pas cela ... –
OMG - un utilisateur PEUT être un auteur, mais un auteur sera un utilisateur. C'est ce que tu veux dire? – johnnietheblack
Non, s'il n'y a qu'un seul utilisateur associé à un seul enregistrement AUTHOR, c'est-à-dire 1: 1. La décision dépend de vos règles d'affaires, mais les auteurs ont été connus pour avoir des pseudonymes (pseudonymes) - IE: Steven King a écrit comme Richard Bachman –