pucci ha scritto: ↑26/04/2020, 9:24
stavo ripensando a questo parte
come lo farei io?
una tabella dove inserisco i vari ricerca/lista pubbliche/utente e dove con dei pulsanti possono spostarli prima o dopo di altri
a metà di ognuno di questi c'è un pulsante che fa scegliere l'operazione (unione, differenza, in, not in, ecc...)
- ogni lista, ricerca, ecc restituisce un elenco di giochi, quindi un "insieme" i cui elementi devono essere identificati in modo univoco (MAME usa il nome della roma, ADB usa i tuoi ID che hai dovuto creare per tenere conto delle stesse rom che magari hanno cambiato nome da una versione all'altra. per ADB una rom che cambia nome "rimane la stessa", per MAME no)
- sugli insiemi si possono eseguire una serie di operazioni previste dalla matematica, queste operazioni nel caso di 2 insiemi possono essere 4
operazioni_insieme.jpg
la quarta "differenza" si può spezzare in 2 essendo possibile una differenza tra A e B oppure tra B e A
andrebbe anche aggiunta una quinta operazione che opera su un unico insieme: il complementare rispetto all'insieme universo (l'insieme universo nel nostro caso è la lista di tutti i giochi del MAME) ES: i complementare dell'insieme "cloni" sono "parent+device+BIOS"
questa operazione in realtà si può vedere come una operazione DIFFERENZA B - A (con B=lista tutti giochi del MAME e A=nostra lista attuale)
combinando in modo grafico questi "blocchi" direi che puoi fare tutto ed arrivare ad un insieme finale che contenga ciò che volevamo estrarre dal database del MAME (cioè la nostra lista perfetta)
ESEMPIO:
- lista parent
DIFFERENZA
- lista not working
UNIONE
- lista cloni working di parent not working
UNIONE
- lista dei giochi in italiano
DIFFERENZA
- lista dei parent dei giochi in italiano selezionati al punto precedente
DIFFERENZA
- lista dei giochi che appartengono a categorie non adatte ai MAME cab
DIFFERENZA
- lista dei giochi che funzionano con volante (perchè magari il mio cab non ha volante)
DIFFERENZA
- lista dei giochi che funzionano con lightgun (perchè magari il mio cab non ha lightgun)
tutto questo con javascript direi che è gestibile con dei blocchi grafici che rappresentano gli insiemi e altri blocchi grafici che rappresentano le operazioni, se si possono postare graficamente con il mouse o con dei pulsanti
uniche regole:
- la sequenza deve iniziare con un INSIEME e finire con un INSIEME
- dopo ogni INSIEME deve esserci una OPERAZIONE (salvo che l'INSIEME non sia l'ultimo della sequenza)
- prima e dopo ogni OPERAZIONE deve esserci un INSIEME
sarebbe bello che a fianco di ogni insieme venisse riportato anche il numero di elementi che lo compongono in modo da comprendere anche graficamente gli effetti delle nostre operazioni
Torno sull'argomento, dopo averci pensato un po'.
Tra le tante ipotesi fatte, una sola per il momento mi sembra la più indicata per gestire questa possibilità di fare ricerche multiple.
In sostanza mi preparo per definire una nuova entità "insieme" che entra a far parte come parametro della ricerca (quindi può essere salvato insieme a lei, ad esempio).
Se valorizzato, mostro a video la struttura (si tratta di alcuni campi come id, nome, descrizione, conteggi, ecc.) in modo che l'utente possa capire come valorizzarli.
Si vedrà un elenco di ricerche, definite appunto insieme 1, insieme 2, ecc. al quale si può dare un nome parlante. Questo elenco viene salvato su database solo in fase di salvataggio ricerca come oggi, altrimenti rimane in memoria e quindi si azzera se cambio pagina. Così posso sfruttare l'attuale gestione ricerche senza richiedere un login, e nel momento del salvataggio invece rimarrà anche alla chiusura della pagina.
Quindi ci sarà un pulsante tipo "aggiungi all'insieme" in cui potrai indicare anche l'operazione da svolgere. Il tasto cerca in fondo farà il lavoro di sempre, ma vedendo definiti degli insiemi processerà in sequenza anche quelli prima di applicare i filtri.
Sarà possibile capire quale insieme stiamo modificando che poi sarà anche quello che riceverà le eventuali modifiche alla pressione del tasto Cerca.
A fianco di ciascun insieme visualizzerò sempre la descrizione completa della ricerca, in modo da capire cosa effettivamente è stato definito.
Un insieme potrà essere definito come uno qualunque dei filtri applicabili, e nel caso di ricerca salvata potrà avere anche ulteriori insiemi innestati.
Ecco una piccola anteprima, non esiste nulla se non un disegno a video quindi è esclusivamente ancora tutto su carta come ragionamento.
Ovviamente questo esempio non è significativo dato che posso fare tutto con un'unica ricerca.
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.