Konvertieren von Primärschlüsseln aus Autoinkrement-Ganzzahlen in UUIDs

Das Ziel

Ich möchte, dass WordPress einen eindeutigen Bezeichner verwendet, anstatt den Primärschlüssel automatisch zu inkrementieren, was derzeit der WP-Standardansatz ist, um die Integration mehrerer WP-Websites zu erleichtern.

Die Begründung

Ich brauche den Schlüssel, um universell einzigartig zu sein, zumindest im Bereich der verschiedenen WordPress-Websites. Die Idee besteht darin, Posts und andere Daten zwischen den Sites so zu synchronisieren, dass ein auf jeder Site erstellter Post auch für jede andere Site verfügbar ist. Die verschiedenen Websites befinden sich auf verschiedenen Servern an verschiedenen Standorten.

Das Thema

Die Autoinkrement-functionalität, auf die WP angewiesen ist, wird eindeutig dazu führen, dass derselbe Schlüssel in der entsprechenden Tabelle jeder WP-Site für verschiedene Posts verwendet wird, dh der erste Post in jeder Website wird 1 , während ich ihn für alle Installationen einzigartig brauche dass ich die Daten von jedem von ihnen in jede andere Website zusammenführen kann.

Wenn WP den Primärschlüssel abruft, werden diese Werte in Integer umgewandelt. Wenn PHP das BIGINT von MySQL erhält, würde es es normalerweise als Gleitkomma verwalten, weil es größer ist als das int-Limit von PHP, aber wenn es als int in PHP umgewandelt wird, hat das den Effekt, dass es in meinem Fall abgeschnitten wird.

Was ich bisher gemacht habe

Ich verwende zur Zeit uniquid() -function, um den Schlüssel zu erzeugen, der eine 13- uniquid() Zeichenkette erzeugt, die dann im Bereich von 1388661576514060 (heute Abend) in eine Dezimalzahl konvertiert wird, was kleiner ist als ein BIGINT in MySQL (bis 18446744073709551615 ) Das ist cool und ein Override, das ich auf wpdb angewendet habe, schreibt es erfolgreich in die database, aber die Integer-Grenze von PHP ist viel kleiner, bis zu 2147483647 .

Es ist ziemlich einfach, dies zu tun, indem Sie die insert_replace und die Abfragefunktion in wpdb mit functionen in einer neuen class überschreiben, die einen eindeutigen Wert festlegen und wpdb , der als Primärschlüssel verwendet werden soll.

Ich versuche derzeit, zu versuchen, das (int) Casting zu entfernen und zu sehen, ob das mein Problem triggers, obwohl ich es vorziehen würde, keine Änderungen am WP-core vorzunehmen, es scheint, dass es meine einzige Option ist.


Gedanken

Ich bin damit beschäftigt, diesen Ansatz zu verfolgen, denn während es meinen unmittelbaren Bedarf lösen kann, könnte es irgendwo anderswo schlimmeres Problem verursachen, und ich frage mich, ob jemand zuvor etwas Ähnliches versucht hat.

Außerdem bin ich neugierig, warum die Entwickler ein bestimmtes Casting verwendet haben – ich liebe die losen Daten von PHP, also würde ich das nicht tun, wenn es nicht einen bestimmten Grund dafür gibt. Ich habe genügend Finger verbrannt, um die Gründe anderer Programmierer zu respektieren, die genug sind, um herauszufinden, was sie sind, also die Frage.

Ich würde es wirklich vorziehen, den core aus all den offensichtlichen Gründen überhaupt nicht zu hacken, könnte irgendjemand anbieten und Gedanken oder Ideen darüber, wie man dieses Problem anwendet oder alternativ eine andere Art, sich ihm zu nähern?

Solutions Collecting From Web of "Konvertieren von Primärschlüsseln aus Autoinkrement-Ganzzahlen in UUIDs"