[RUBY] Quel est le meilleur type de données de migration? ??

Que peut-on réaliser par la migration

Créer une table Supprimer la table Ajouter une colonne Changement de nom de colonne Changement de type de données de colonne Supprimer la colonne

Création du fichier de migration

Le fichier de migration est créé lors de la création du modèle. Il est également possible de créer seul le fichier de migration.

Terminal


rails g model [Nom du modèle] [Nom d'attribut:データ型 Nom d'attribut:Type de données ...] [option]

#Lors de la génération par elle-même
rails g migration nom de la migration

En exécutant la commande ci-dessus, un fichier de migration sera créé dans le dossier db / migrate.

Quel est le type de données approprié? ??

Information officielle Aperçu approximatif en japonais
primary_key Clé primaire
string Chaîne(1 à 255 caractères)
text Longue chaîne(1 à 4294967296 caractères)
integer entier(4 octets)
bigint entier(8 octets)
float Fraction flottante
decimal Minorité très précise
numeric Valeur numérique
datetime Date et l'heure
time temps
date Date
binary Données binaires
boolean Type booléen

Que faire avec des choses similaires mais différentes

** Ce qui est mieux, chaîne ou texte, lorsqu'il s'agit de caractères **

Étant donné que la chaîne ne peut gérer que 255 caractères maximum, il est recommandé d'utiliser du texte lors de la gestion de données pouvant contenir 256 caractères ou plus en fonction de l'état et de l'heure. Les informations de caractère telles que les noms, les adresses e-mail et les noms de société sont généralement traitées sous forme de chaînes, et les informations textuelles telles que le texte et les remarques sont généralement utilisées sous forme de texte.

** Ce qui est mieux, chaîne ou entier quand il s'agit d'énumération ** Puisque c'est enum qui peut mapper l'entier de hachage, si la colonne à gérer par enum est définie sur string, il est inutile d'incorporer enum en premier lieu, et cela ne fonctionne pas. Dans cet esprit, integer est un bon choix pour les types de données de colonne que enum gérera.

** Ce qui est mieux, entier ou bigint, lorsqu'il s'agit d'id ** L'identifiant peut comporter un grand nombre de chiffres à mesure que le nombre d'utilisateurs augmentera à l'avenir. Étant donné que la colonne id est par défaut bigint à partir de Rails 5.1, vous pouvez essentiellement penser que bigint convient.

Dans les deux cas, il est plus sûr de sélectionner une boîte plus grande s'il y a une possibilité qu'elle ne rentre pas dans le futur, plutôt que de la faire correspondre à la situation actuelle.

Supplément

Convention de dénomination des modèles de rails

Dans Rails, le nom de table de la base de données correspondant au modèle est au pluriel comme les membres.

Cependant, le nom de classe du modèle est une forme singulière avec une majuscule supérieure, telle que Member.

De plus, lors de la création d'un modèle, il est possible de commencer le membre en lettres minuscules comme "rails g model member".

De même, par exemple, un modèle MemberImage (le nom de la table est member_images) est créé en spécifiant member_image ou en tant que MemberImage.

Cependant, il est strictement interdit de le rendre pluriel comme les membres. Le modèle Members sera créé. Assurez-vous de créer le modèle sous une forme singulière.

Recommended Posts

Quel est le meilleur type de données de migration? ??
Quelle est la structure des données d'ActionText?
Le fichier de migration est dupliqué
Qu'est-ce qu'un type booléen?
Quelle est la méthode pluck?
Qu'est-ce que la classe BufferedReader?
A quoi sert le constructeur?
Quelle est la méthode d'initialisation?
'% 02d' Quel est le% de% 2?
Qu'est-ce qu'un type booléen de colonne?
Qu'est-ce qu'une variable de type référence?
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
[Note personnelle] Le type de données Java est ennuyeux
Quelle est la meilleure lecture de fichier (Java)
Quel est le test de code de test de modèle
Quelle est la méthode principale en Java?
À quoi sert le modèle de façade?
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que le modèle Java Servlet / JSP MVC?
Qu'est-ce que maven?
Qu'est-ce que Jackson?
Ce qui est différent du langage PHP. [Remarque]
Le type d'intersection introduit dans Java 10 est incroyable (?)
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Quel est le modificateur volatile pour les variables Java?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Quelle est la différence entre SimpleDateFormat et DateTimeFormatter? ??
Qu'est-ce que 'java
Qu'est-ce que centOS
Mémo organisé dans la tête (Java - type de données)
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Quelle est la différence entre System Spec et Feature Spec?
[Rails] Quelle est la différence entre la redirection et le rendu?
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Quelle est la différence entre ignorer et en attente? [RSpec]
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?
Qu'est-ce qu'un constructeur
Qu'est-ce que vue cli
Qu'est-ce qu'une interface