Wie kann ich store-Objekt für die MySql-Datenbank?
kann ich speichern, Objekt in der MySql-Datenbank? Weil ich mache eine online-oder offline-support-system von MySql. Es ist also wichtig, um alle Daten zu speichern als Objekt. Haben Sie eine bessere Idee, außer Objekt?
Dies ist Damo Beispiel über das Objekt
$data = array(
'user_id' => 1, //$userId,
'payment_id' => $payment_id,
'hash' => $hash,
'conversation' => $object,
'amount' => $paypal->getTransactions()[0]->getAmount()->getTotal(),
'description' => $paypal->getTransactions()[0]->getDescription()
);
$this->db->insert($this->table, $data);
- was Sie genau möchten. Wie viele Spalten in der Tabelle?
- Zu jedem Schlüssel in der Datenbank, und legen Sie die Grundlage. Eine Abfrage wie
"INSERT INTO something (someKey1,someKey2) VALUES ('{$somevalue->someKey1}', '{$somevalue->someKey2}');"
wäre Das Objekt über Eigenschaften, die mit dem Schlüssel übereinstimmen. - trotzdem können Sie serialisieren diese Objekt vor dem einfügen
- Sie könnte es zu serialisieren, aber ich würde mich nicht; es bricht Normalisierung Regeln und bindet die Daten an die Anwendung; - serialisierte PHP Daten wäre sinnlos, irgendetwas anderes das Lesen der Datenbank. Kurz gesagt - es ist generell eine schreckliche Idee.
- gut, wenn-Objekts ist einfach Sie können. Wenn nicht - können Sie implementieren eigene Serialisierungs mit __sleep
- Sie können aber sollten Sie dennoch nicht; sagen, mit das Beispiel, Sie wollten, um alle Transaktionen für einen gegebenen Benutzer. Wie würdest du es tun, wenn nicht nur ein laden der serialisierten Objekte in einer Spalte? Wie würden Sie aktualisieren die
complete
Eigenschaft des Objekts? - Ah, in diesem Fall voll und ganz Zustimmen
- Nun ist es möglich, in vieler Weise durch den Einsatz von MySql-update-Funktion. Ich habe 3 schreiben soluation als meine Antwort. Bitte Lesen Sie und geben Sie mir einige feed zurück. Ich benutze lieber soluation 1.
- Ich würde nicht speichern Sie diese in eine Spalte. Ich würde eine Tabelle mit user_id, payment_id, hash etc. Spalten. Es würde die Aktualisierung einer einzelnen Feld einfacher. Sie können immer wählen Sie eine Zeile aus und wandeln Sie es um ein Objekt, wenn Sie benötigen. Vor allem, wenn Sie über irgendeine Art von ORM, wäre diese Automatik eh.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie verwandeln Ihr Objekt in einen string zu speichern Sie Ihre vollständige Objekt.
Für, die, Nutzung serialisieren in PHP:
http://php.net/manual/en/language.oop5.serialization.php
Dann werden Sie in der Lage zu unserialize und wieder zu Ihrem Objekt.
ticket_id
ist korrekt indiziert.MySql hat viele Funktionen in MySql 5.7. Jetzt können Sie es in vielerlei Hinsicht tun.
Lösung 1: Sie können die Verwendung von MySQL als ein Dokument Speichern. Es ist möglich, viele, viele-Objekt als JSON. Es ist sehr empfehlenswert und Erweiterbar.
Wird es am besten für transparente Daten senden und die Freigabe für die chat-Anwendung oder Gruppe Anwendung.
Lösung 2:
MySql Sysbench: Read Only
ist eine weitere gute Lösung. Es wird sehr sehr schnell und skalierbar zu machen, Gruppe chat-Anwendungen.Lösung 3: Verwenden
MySql 5.7 : InnoDB, NoSql with Memcached API
die direkte Interaktion mit der storage-engine InnoDB. Es ist 6X schneller als MySql 5.6.Weitere details:
https://www.mysql.com/news-and-events/web-seminars/introducing-mysql-document-store/
https://dev.mysql.com/doc/refman/5.7/en/document-store-setting-up.html
https://www.oracle.com/big-data/index.html
https://www.youtube.com/watch?v=1Dk517M-_7o