2016-08-09 4 views
1

Ich möchte Array [3,9,21] in der Datenbank (mySQL) speichern. Außer Speichern der Werte von Array möchte ich das gesamte Array in der Datenbank speichern. Ist es möglich?So speichern Sie Array in der Datenbank - Rails

+3

nicht direkt, weil MySQL keine Arrays hat. Sie müssen die Zeichenfolgendarstellung speichern. Außerdem ist es fast immer besser, die Tabelle zu normalisieren und jeden Wert als separate Zeile zu speichern. – e4c5

+0

Sehen Sie sich die Methode ['serialize'] (http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Serialization/ClassMethods.html#method-i-serialize) an. –

Antwort

5

Wenn Sie MySQL 5.7+ verwenden, können Sie; es führte ein JSON-Datentyp https://dev.mysql.com/doc/refman/5.7/en/json.html

Eine schnelle Lesen über die Änderungen: http://lornajane.net/posts/2016/mysql-5-7-json-features

PS - Ich bin ein Fan des Kommentars oben - Speichern von Werten als separate Zeilen statt als Arrays eine bessere Option ist

+0

Wenn Sie diese Werte in einer 'JOIN'- oder einer' WHERE'-Klausel referenzieren müssen, müssen Sie sie unbedingt in eine korrekte relationale Struktur aufteilen. Das ist nicht immer der Fall, und manchmal ist das Serialisieren als JSON tatsächlich bequemer. – tadman

+0

Sie sollten jedes Element als eine Zeile speichern. Halten Sie Ihre Daten organisiert wird viel sauberer sein. –

Verwandte Themen