Ho una lista con oggetti memorizzati in un database. Questi oggetti sono mostrati in un elenco e l'utente può trascinarli e rilasciarli per ordinarli in un modo specifico. Voglio che l'ordine specifico venga archiviato.
Come posso farlo in modo efficiente? Ho pensato alle seguenti opzioni:
-
Mantenere una matrice con l'ordine desiderato. La matrice può essere memorizzata localmente (non un'opzione nel mio progetto corrente) o online (tabella extra :(). Non mi piace molto questa soluzione.
-
Aggiungi un campo "priorità" a ciascun oggetto e ordina gli oggetti per esso. Trascinando e rilasciando la priorità di un oggetto si cambia in un valore < l'oggetto sopra e > rispetto all'oggetto sottostante. Dovrebbe esserci un grande margine tra questi valori di priorità, oppure dovrei usare dimezzare i numeri / float (infinito alla definizione float della piattaforma). Altrimenti uno potrebbe finire per provare a decidere quale numero è più grande di 2 e più piccolo di 3, per esempio. Aggiorna solo l'oggetto aggiornato.
-
Come 2. ma aggiorna TUTTI gli oggetti dopo un'operazione di trascinamento e rilascio e li memorizza tutti. Questo sembra un po 'inefficiente e inutile.
Mi manca l'ovvio? C'è un modo migliore?