Mysql
 sql >> Datenbank >  >> RDS >> Mysql

wie man das feld für die anzeigereihenfolge in php pflegt

Sie können größere Werte für die Anzeige verwenden, z. B. :

apple : 1 000 000

orange : 2 000 000

banana : 3 000 000

Wenn ich jetzt potato hinzufügen möchte in Position 2 (n=2) nehme ich die Positionen n (=> 2 :Orange) und (n-1)(=> 1 :Apfel) und teile sie durch 2, um die neue Kartoffelposition zu erhalten:

(1 000 000 + 2 000 000) / 2

=1 500 000

apple : 1 000 000

**potato : 1 500 000**

orange : 2 000 000

banana : 3 000 000

Das wird ziemlich lange funktionieren, und wenn Sie irgendwann das Gefühl haben, dieses Schema ausgeschöpft zu haben, können Sie immer noch alle Werte mit 1000 multiplizieren.

Sie können auch weiterhin niedrige Werte (1, 2, 3, ...) verwenden und ihren Typ als DOUBLE definieren , sodass sie niemals kollidieren, wenn sie durch 2 dividiert werden.

BEARBEITEN : Über das Platzieren einer Banane in Position 1 :

Mit der Formel (n+(n-1))/2:

Hier n =1 (neue Position).

Unsere Daten sind:

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

banana : 3 000 000

(1 000000+(0))/2

=500 000

Ich gebe der Banane die Bestellung 500 000 :

**banana : 500 000**

apple : 1 000 000

potato : 1 500 000

orange : 2 000 000

Noch eine andere Lösung:Erstellen Sie ein Textfeld, das ein Indexer wäre und alle IDs enthalten würde.

"1,2,3,4,5,6,7"

Wenn ich jetzt die Element-ID 8 zwischen 3 und 4 setzen möchte, muss ich einfach ",4," durch ",8,4," ersetzen.

Obwohl es in Bezug auf die Berechnung komplizierter ist, ein Element bei Index n zu finden, würde ich persönlich die erste Lösung verwenden.