[RUBY] Was ist der beste Migrationsdatentyp? ??

Was kann durch Migration erreicht werden?

Tabelle erstellen Tabelle löschen Spalte hinzufügen Änderung des Spaltennamens Änderung des Spaltendatentyps Spalte löschen

Erstellung einer Migrationsdatei

Die Migrationsdatei wird beim Erstellen des Modells erstellt. Es ist auch möglich, die Migrationsdatei alleine zu erstellen.

Terminal


rails g model [Modellname] [Attributname:データ型 Attributname:Datentyp ...] [Möglichkeit]

#Beim Generieren von selbst
Rails g Migration Migrationsname

Durch Ausführen des obigen Befehls wird eine Migrationsdatei im Ordner db / migrate erstellt.

Was ist der passende Datentyp? ??

Offizielle Informationen Grobe Übersicht auf Japanisch
primary_key Primärschlüssel
string String(1-255 Zeichen)
text Lange Schnur(1 bis 4294967296 Zeichen)
integer ganze Zahl(4 Bytes)
bigint ganze Zahl(8 Bytes)
float Schwimmende Fraktion
decimal Sehr genaue Minderheit
numeric Numerischer Wert
datetime Datum (und Uhrzeit
time Zeit
date Datum
binary Binärdaten
boolean Boolescher Typ

Was tun mit ähnlichen, aber unterschiedlichen Dingen?

** Was ist besser, Zeichenfolge oder Text, wenn es um Zeichen geht **

Da Zeichenfolgen nur bis zu 255 Zeichen verarbeiten können, wird empfohlen, Text zu verwenden, wenn Daten verarbeitet werden, die je nach Status und Zeit 256 Zeichen oder mehr umfassen können. Zeicheninformationen wie Namen, E-Mail-Adressen und Firmennamen werden im Allgemeinen als Zeichenfolgen behandelt, und Textinformationen wie Text und Anmerkungen werden im Allgemeinen als Text verwendet.

** Was ist besser, String oder Integer im Umgang mit Enum ** Da es eine Aufzählung ist, die die Ganzzahl des Hashs abbilden kann, macht es keinen Sinn, die Aufzählung überhaupt einzubeziehen, wenn die von enum zu behandelnde Spalte auf string gesetzt ist, und es funktioniert nicht. In diesem Sinne ist Integer eine gute Wahl für die Spaltendatentypen, die von enum verarbeitet werden.

** Was ist besser, Integer oder Bigint, wenn es um ID geht ** Die ID kann eine große Anzahl von Ziffern sein, wenn die Anzahl der Benutzer in Zukunft zunimmt. Angesichts der Tatsache, dass die ID-Spalte standardmäßig bigint aus Rails 5.1 ist, können Sie grundsätzlich denken, dass bigint geeignet ist.

In beiden Fällen ist es sicherer, eine größere Box auszuwählen, wenn die Möglichkeit besteht, dass sie in Zukunft nicht mehr passt, als sie an die aktuelle Situation anzupassen.

Ergänzung

Namenskonvention für Schienenmodelle

In Rails ist der Tabellenname der Datenbank, die dem Modell entspricht, wie Mitglieder im Plural.

Der Klassenname des Modells ist jedoch eine Singularform mit einem oberen Kapital, z. B. Mitglied.

Wenn Sie ein Modell erstellen, ist es auch in Ordnung, das Element in Kleinbuchstaben wie "Rails g Model Member" zu starten.

Außerdem wird beispielsweise ein MemberImage-Modell (Tabellenname ist member_images) durch Angabe von member_image oder als MemberImage erstellt.

Es ist jedoch strengstens verboten, es wie Mitglieder plural zu machen. Das Mitgliedermodell wird erstellt. Stellen Sie sicher, dass Sie das Modell in Singularform erstellen.

Recommended Posts

Was ist der beste Migrationsdatentyp? ??
Wie ist die Datenstruktur von ActionText?
Die Migrationsdatei wird dupliziert
Was ist ein boolescher Typ?
Was ist die Zupfmethode?
Was ist die BufferedReader-Klasse?
Wofür ist der Konstruktor?
Was ist die Initialisierungsmethode?
'% 02d' Was ist der% von% 2?
Was ist ein Boolescher Spaltentyp?
Was ist eine Referenztypvariable?
Was ist ein Test? ・ Über die Wichtigkeit eines Tests
[Persönliches Memo] Der Java-Datentyp ist ärgerlich
Was ist das beste Lesen von Dateien (Java)
Was ist die Hauptmethode in Java?
Wofür ist das Fassadenmuster nützlich?
Was ist Cubby?
Was ist null? ]]
Was ist java
Was ist Schlüsselumhang?
Was ist das Java Servlet / JSP MVC-Modell?
Was ist Maven?
Was ist Jackson?
Was unterscheidet sich von der PHP-Sprache. [Hinweis]
Der in Java 10 eingeführte Schnittpunkttyp ist erstaunlich (?)
Was ist Selbst
Was ist Jenkins?
Was ist ArgumentMatcher?
Was ist IM-Jonglieren?
Was ist params
Was ist SLF4J?
Was ist Fassade? ??
Was ist Java <>?
Was ist der flüchtige Modifikator für Java-Variablen?
Was ist Gradle?
Was ist POJO?
Was ist der Unterschied zwischen SimpleDateFormat und DateTimeFormatter? ??
Was ist java
Was ist centOS?
Organisiertes Memo im Kopf (Java - Datentyp)
Was ist RubyGem?
Was ist before_action?
Was ist Docker?
Was ist Byte?
Was ist Tomcat?
Was ist der Unterschied zwischen Systemspezifikation und Funktionsspezifikation?
[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Was ist der Unterschied zwischen Überspringen und Ausstehend? [RSpec]
Was ist Maven Assembly?
Was ist Docker-Compose?
Was ist ein Konstruktor?
Was ist vue cli
Was ist eine Schnittstelle?