Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Select su tutte le tabelle

    Salve,
    ho a che fare con un database generato da altro metodo d'inserimento che ha avuto inserimenti non sempre coerenti tra dato e campo di appartenenza. Dato che il problema non è risolvibile se non con una modifica manuale e passo passo degli inserimenti sbagliati, mi è stato chiesto per il momento di impostare una ricerca che ho chiamato per comodità "a campo libero", ovvero la possibilità di inserire un termine specifico in una casella di testo e di andare a cercare la sua occorrenza nell'intero DB qualora fosse stata inserita in un campo piuttosto che in un altro.

    Ho già specificato loro che questa richiesta genera una query che è pressocchè inindicizzabile, ma di fatto pensandoci bene non ho neanche la più pallida idea di come impostarla query.

    Il punto è che non potendo specificare il campo di appartenenza, non riesco ad agganciare come esprimere la condizione finale "WHERE".

    Qualcuno ha un metodo o una forma da suggerire? Grazie!

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    La prima cosa che mi viene in mente prima di uscire di casa ...
    - un ciclo su tutte le tabelle ( escludendo quelle di sistema)
    -- per ogni tabella un ciclo su tutti i campi
    --- per ogni campo lanci la ricerca
    ---- se l'esito è positivi im una TabTemp ti scrivi i riferimenti per ritrovare il record

    .

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Uhm...
    Così a naso e se ho inteso:

    dovrei ciclare una serie di query sui singoli campi per singola tabella e poi unire i risultati (che sia tabella temporanea o array dedicato in php ad esempio) ?

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Si, più o meno avevo detto questo,
    ma ribadisco si tratta di una idea magari anche "maldestra"

    in effetti il tuo DB potrebbe anche gia suppotrare delle ricerche più
    specifiche su tutte le tabelle che ti eviterebbe di fare quel "casino" con i cicli

    Se usi php sospetto che il DB sia MySql che io non conosco a sufficienza

    Dicci quale DB usi e qualche altro dettaglio che magari ti arrivano anche delle "dritte"
    più mirate da utenti più esperti

    .

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Si, il DB usato è MySql in effetti.

    Speravo ci fosse una formula interna più che tirare su un ciclo infinito di query, ma se non c'è altra soluzione mi sa che sarò costretto.

    Peraltro, ho cercato un pò in rete, cosa che faccio sempre prima di postare un quesito, ma in effetti non esistono altri thread di spiegazioni o funzioni descritte che facciano questo lavoro, probabilmente trattandosi di una cosa poco convenzionale è un argomento che non è mai stato trattato nè come soluzione tra programmatori, nè tra gli sviluppatori del db. Giustamente oserei dire.

    Grazie mille, studierò il sistema tramite php. Nel frattempo sarei grato a chiunque leggesse se postasse la propria idea o il proprio pensiero sul tema, o un'esperienza fatta. Grazie intanto!

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Mi sembra che quello di realizzare un programma che legga tutte le tabelle e i campi per cercare il dato sia una buona soluzione
    Ad ogni risultato trovato, metti in un'altra tabella il dato insieme al nome della tabella dove li hai trovato, alla colonna e, se ritieni, anche altri dati utili a ritrovarlo
    In linea teorica potresti anche provare a sistemare il dato una volta che hai finito la ricerca

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    In realtà non è quello il fine ultimo della cosa, ma è una vera e propria ricerca. Il dato dovrà essere formattato al pari degli altri, se vorranno sistemare il dato poi ci saranno tutti gli strumenti per farlo per altra via. La cosa che mi preoccupa è che si tratta di parecchi campi in cui cercare, potrebbe diventare un'operazione di lunga esecuzione una volta in piedi, oltre che di scrittura in sè.

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ma i termini di ricerca saranno totalmente variabili a discrezione dell'utente?
    puoi cercare di prevedere quali termini siano?

    se salvi gli estremi delle tabelle insieme al termine di ricerca, ottieni una sorta di "caching perpetuo": in pratica, cerchi prima nella nuova tabella e, se non trovi nulla, cerchi nelle altre salvandoti il dato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.