Я працюю над системою списку бажань, де користувачі можуть додавати елементи до своїх різних списків бажань, і я планую дозволити користувачам згодом повторно замовляти товари. Я не дуже впевнений у найкращому способі зберігати це в базі даних, залишаючись при цьому швидким і не перетворюючись на безлад (цей додаток буде використовуватися досить великою базою користувачів, тому я не хочу, щоб він знижувався прибирати речі).
Спочатку я спробував position
стовпчик, але здається, що це було б досить неефективно, коли б ви змінювали значення позиції кожного іншого елемента, коли ви переміщуєте їх.
Я бачив людей, які використовують самовідсилання для посилання на попереднє (або наступне) значення, але знову ж таки, здається, вам доведеться оновити цілу масу інших елементів у списку.
Ще одне рішення, яке я бачив, - це використання десяткових чисел та просто наклеювання предметів у проміжки між ними, що здається найкращим рішенням поки що, але я впевнений, що має бути кращий спосіб.
Я б сказав, що типовий список міститиме приблизно 20 або більше предметів, і я, ймовірно, обмежуватимуть його до 50. Повторне замовлення буде використовувати перетягування і, ймовірно, буде виконуватися партіями, щоб запобігти умовам перегонів і подібним прохання ajax. Я використовую postgres (на heroku), якщо це має значення.
Хтось має ідеї?
Будь ласка, будь-яка допомога!