Oxarticles -> OXID Erweiterung der Länge + Untertabellen


#1

Hallo zusammen,

ich will/muss die Länge der OXID in Oxarticles erweitern, natürlich damit verbunden auch die Untertabellen oxobject2 … . hab ihr damit Erfahrungen bzw. gibt es dabei bekannte Probleme die dann auftreten / bzw. auftreten könnten. Lieben Dank im Voraus für eure Hinweise! (CE V. 4.8.4)


#2

wozu? Hast Du etwa schon alle 35^32 Möglichkeiten ausgeschöpft?
Auch im schlimmsten Szenario kann ich mir nicht vorstellen, warum so ein Eingriff in die Datenbankstruktur absolut nötig wäre


#3

Es ist wie es ist. Leider kann ich mir das nicht aussuchen :frowning: Glücklich bin ich damit ganz sicher nicht.


#4

ich habe keine handfesten Fakten und Zahlen dazu, aber die generelle Überlegung wäre:
größeres primary Key Feld => größere foreign key Felder in anderen Tabellen => größere Datenbank, größere Indizes => braucht mehr Platz auf der Platte => mehr I/O => langsamer
Wie groß soll es denn werden?
varchar(32) ist für ein primary key sowieso schon viel zu lang, üblich ist da sowas wie int(11) mit auto increment.
Außerdem hat MySQL sein eigenes hard limit für primary keys bei 255 Zeichen. Das empfinde ich als dezenten Hinweis, dass bei so einer Länge die Datenbank in Flammen aufgehen würde.

Auch nach der Verlängerung generiert OXID weiterhin die IDs mit 32 Stellen, also könntest Du höchstens Inhalt von Außen mit längeren IDs einspeisen bzw. IDs manuell setzen, sofern das in 4.8 möglich ist.
Gibts da sicherlich keine Möglichkeit bei 32 Zeichen zu bleiben?


#5

Wenn man in eigenen Programmen OXIDs mittels der Mysql UUID-Funktion generiert, muss man auf 36 Stellen erweitern (‘6ccd780c-baba-1026-9564-0040f4311e29’). Ich würde aber in dem Fall dazu tendieren, entweder die ‘-’ rauszuziehen, weil die zur Eindeutigkeit eh nichts beitragen oder uuid_short() zu verwenden.


#6

Danke für deine Antwort. Ja, es ist so das ein bereits bestehendes System eigene IDs kreiert. Nun reicht die Länge aber nicht mehr aus und es muss > 32 erweitert werden auf 90. Auch wenn einem da gruselt. Das ist leider so und ohne größeres Refactoring nicht mehr zu beheben und wird auch vor einer anstehenden Neuentwicklung nicht mehr gemacht. Die Frage die sich mir nun stellt ist ob es funktional irgendwo Ärger geben könnte. vielleicht eine Validierung o.ä. Ich dachte - vielleicht hat jemand schon mal ähnliches gemacht und damit Erfahrung.


#7

Hast du das schon mal gemacht? Die Länge erweitert?


#8

nein, nicht in den OXID-Tabellen. Aber das müsste schon gehen. Du musst alle Tabellen raussuchen, in denen die Artikel-OXID als Fremdschlüssel auftritt und dort die Länge anpassen. Probleme kanns allerdings geben, falls ein kombinierter Index länger als 255 Zeichen würde.

Man sollte es natürlich zuerst auf einem Testsystem gründlich testen.


#9

Ok, danke soweit! :sunglasses:


#10

Und ein extra Feld anzulegen, anstatt der OXID um die Standardfunktionalität beizubehalten ist nicht möglich? Und evt. noch eine Mapping-Tabelle? [OXID, 90-Zeichen-ID, OXOBJECTID]


#11

hört sich vernüftiger an :wink: