Gestione ordine intero / ordine di visualizzazione intero come campo in collezione / tabella [duplicato]

2

Diciamo che abbiamo una colonna nella tabella o una proprietà in una raccolta chiamata "sortOrder" che è semplicemente un numero intero che denota quale ordine deve apparire quando viene visualizzato.

Sto cercando di capire il modo più semplice per implementarlo, considerando che quando inseriamo una nuova riga nella tabella potrebbe avere un ordinamento che divide in due l'elenco corrente - quindi suppongo che dovremmo aggiornare tutti le righe in cui il valore del campo sortOrder è maggiore o uguale all'elemento appena inserito.

Qualcuno ha avuto questo problema, come lo hai risolto?

Ecco una domanda che illumina il problema se non lo ottieni:

link

    
posta Olegzandr Denman 05.12.2017 - 09:41
fonte

2 risposte

2

Dopo aver letto la domanda correlata menzionata nei commenti, credo di aver capito il tuo problema.

Potresti inserire un nuovo elemento alla fine dell'elenco, assegnandolo ad alcuni "sortOrder" che rappresentano l'ultima posizione.

Dopodiché, implementi alcune funzionalità per modificare l'ordine degli elementi, consentendo all'utente di spostare ciascuno di essi "su" o "giù" (come la risposta accettata della domanda correlata menzionata); questo è fatto facilmente e richiederà solo uno scambio tra 2 elementi.

    
risposta data 05.12.2017 - 11:01
fonte
-2

È quasi sempre una cattiva idea memorizzare un ordinamento in modo persistente.

Per essere utile nell'interazione con l'utente, deve esserci un ovvio motivo per cui le cose si trovano in un ordine specifico. Quella ragione sarà quasi certamente facilmente calcolabile, e sarà più facile recuperare le cose come sono e ordinarle prima della visualizzazione piuttosto che preoccuparsi di mantenere l'ordinamento con ogni cambiamento nella collezione. Ci potrebbe essere circostanze in cui la memorizzazione nella cache dell'ordine come questo ha senso (ad esempio un enorme numero di record, rari inserimenti, nessuna modifica ai campi rilevanti per l'ordinamento, database efficiente e dispositivo client lento), ma io non posso pensare ad un esempio di vita reale.

    
risposta data 05.12.2017 - 09:48
fonte

Leggi altre domande sui tag