Protocole de création de table


1. [Obligatoire] Les champs qui expriment le concept de oui ou de non doivent être nommés à la manière de is_xxx, et le type de données est tinyint non signé (1 signifie oui, 0 signifie non). .

Remarque : Tout champ doit être non signé s'il s'agit d'un nombre non négatif.


2. [Obligatoire] Les noms de tables et de champs doivent utiliser des lettres minuscules ou des chiffres ; il est interdit de commencer par un chiffre, et il est interdit d'avoir seulement un chiffre entre deux traits de soulignement. La modification des noms de champs de base de données est très coûteuse car la pré-version n'est pas possible, les noms de champs doivent donc être soigneusement examinés.

Exemple positif : getter_admin , task_config , niveau 3_ nom

Contre-exemple : GetterAdmin , taskConfig , niveau _3_ nom


3. [Obligatoire] Ne pas utiliser de noms au pluriel dans le tableau noms.

Remarque : Le nom de la table ne doit représenter que le contenu de l'entité dans la table et ne doit pas représenter le nombre d'entités. Le nom de la classe DO correspondante est également au singulier , ce qui est cohérent avec les habitudes d'expression.


4. [Obligatoire] Désactivez les mots réservés, tels que desc, range, match, delay, etc. Veuillez vous référer aux mots réservés officiels de MySQL.


5. [Obligatoire] Le nom d'index unique est uk_field name ; le nom d'index commun est idx_field name.

Explication : uk _ est la clé unique ; idx _ est l'abréviation d'index.


6. [Obligatoire] Le type décimal est décimal, et float et double sont interdits.

Remarque : lorsque float et double sont stockés, il existe un problème de perte de précision. Il est très probable que des résultats incorrects soient obtenus lors de la comparaison des valeurs. Si la plage de données stockées dépasse la plage décimale, il est recommandé de diviser les données en nombres entiers et décimaux et de les stocker séparément.


7. [Obligatoire] Si les longueurs des chaînes stockées sont presque égales, utilisez le type de chaîne char de longueur fixe.


8. [Obligatoire] varchar est une chaîne de longueur variable. Aucun espace de stockage n'est alloué à l'avance. La longueur ne doit pas dépasser 5000. Si la longueur de stockage est supérieure à cette valeur, définissez le type de champ comme texte et. créez une table séparée. Utilisez des clés primaires pour correspondre afin d'éviter d'affecter l'efficacité de l'indexation des autres champs.

9. [Obligatoire] La table doit avoir trois champs : id, gmt_create, gmt_modified.


Remarque :

L'identifiant doit être la clé primaire, le type est un bigint non signé, l'incrémentation automatique pour une seule table et la taille du pas est de 1. Les types de gmt_create,

gmt_modified sont tous des types date_time.

10. [Recommandé] Il est préférable de nommer la table avec "nom commercial_fonction de la table".

Exemple positif : Tiger_Task / Tiger_Reader / Mpp_Config


11 [Recommandé] Le nom de la bibliothèque et le nom de l'application doivent être aussi cohérents que possible.


12. [Recommandation] Si vous modifiez la signification du champ ou ajoutez le statut représenté par le champ, vous devez mettre à jour les commentaires du champ à temps.


13. [Recommandé] Les champs permettent une redondance appropriée pour améliorer les performances, mais la synchronisation des données doit être prise en compte. Les champs redondants doivent suivre :

1) Champs qui ne sont pas fréquemment modifiés.

2) Ce n'est pas un champ varchar super long, encore moins un champ de texte.

Exemple positif : Le nom de la catégorie de produits est fréquemment utilisé, la longueur du champ est courte et le nom est fondamentalement inchangé. Le nom de la catégorie peut être stocké de manière redondante dans la table associée pour éviter les requêtes associées.


14. [Recommandation] Le partitionnement de bases de données et de tables n'est recommandé que lorsque le nombre de lignes dans une seule table dépasse 5 millions ou que la capacité d'une seule table dépasse 2 Go.

Remarque : Si le volume de données ne devrait pas atteindre ce niveau dans trois ans, veuillez ne pas diviser la base de données en tableaux lors de la création du tableau.


15. [Référence] Une longueur de stockage de caractères appropriée permet non seulement d'économiser de l'espace dans la table de base de données et du stockage d'index, mais, plus important encore, d'améliorer la vitesse de récupération.

Exemple positif :

L'âge d'une personne est un tinyint non signé (représentant la plage 0-255, et la durée de vie d'une personne ne dépassera pas 255 ans) tortue

doit être smallint, mais si c'est l'âge du soleil) ; , il doit être int ; si l'âge de toutes les étoiles est additionné, alors bigint doit être utilisé.