Ich arbeite an einem Wishlist-System, in dem Benutzer Artikel zu ihren verschiedenen Wishlists hinzufügen können, und ich plane, Benutzern zu ermöglichen, die Artikel später nachzubestellen. Ich bin mir nicht ganz sicher, wie ich das am besten in einer Datenbank speichern soll, während ich schnell bleibe und nicht in Unordnung gerate (diese App wird von einer relativ großen Benutzerbasis verwendet, daher möchte ich nicht, dass es ausfällt Sachen aufräumen).
Ich habe anfangs eine position
Spalte ausprobiert , aber es scheint ziemlich ineffizient zu sein, den Positionswert jedes anderen Elements zu ändern, wenn Sie sie verschieben.
Ich habe Leute gesehen, die eine Selbstreferenz verwendet haben, um auf den vorherigen (oder nächsten) Wert zu verweisen, aber es scheint, als müssten Sie eine ganze Reihe anderer Elemente in der Liste aktualisieren.
Eine andere Lösung, die ich gesehen habe, ist die Verwendung von Dezimalzahlen und das einfache Einfügen von Elementen in die Lücken zwischen ihnen. Dies scheint die bisher beste Lösung zu sein, aber ich bin mir sicher, dass es einen besseren Weg geben muss.
Ich würde sagen, eine typische Liste würde bis zu etwa 20 Elemente enthalten, und ich werde sie wahrscheinlich auf 50 begrenzen. Die Nachbestellung würde per Drag & Drop erfolgen und wird wahrscheinlich stapelweise erfolgen, um Rennbedingungen und dergleichen zu verhindern Ajax-Anfragen. Ich benutze Postgres (auf Heroku), wenn es darauf ankommt.
Hat jemand irgendwelche Ideen?
Prost für jede Hilfe!