tempomania Posted April 2, 2010 Share Posted April 2, 2010 Ciao a tutti,ho letto vari post sull'argomento che rimandano a soluzioni manuali le più disparate.Il problema è molto semplice:Inserisco un utente di prova, effettuo ordini, carrelli ed aggiungo indirizzi, poi entro in BO e cancello l'utente. Risultato:- in BO rimangono tutti gli indirizzi, carrelli e ordini dell'utente cancellato (se qualcuno mi spiega che senso ha...)- tutti i dati rimangono nel DB dal quale bisogna cancellare tutto a manina ammesso di saperlo fare ed io lo so fare poco.Domande:- ha senso?- esiste un modulo che permette di cancellare tutto quanto è associato all'utente cancellato?grazie in anticipo Link to comment Share on other sites More sharing options...
vinoalvino Posted April 2, 2010 Share Posted April 2, 2010 In effetti la gestione dei dati in prestashop è molto poco "relazionale". Non esistono trigger incaricati di eliminare le righe delle tabelle in relazione con una tabella madre. Comunque le tabelle nelle quali dovresti eliminare i dati per l'id_customer che vuoi cancellare sono:* ps_address* ps_cart* ps_customer_group* ps_discount* ps_guest* ps_mailalert_customer_oos* ps_message* ps_orders* ps_order_return* ps_order_slip* ps_product_comment* ps_referralprogram* ps_wishlistForse per questo non hanno implementato una eliminazione a cascata Per ognuna di queste taballe dovresti fare una 'delete from tabella where id_customer =valore'Per essere precisi per alcune di queste tabelle dovresti levare altra roba (ad esempio l'eliminazione completa da tutte le tabelle ps_order_* dell'ordine dell'utente eliminato)Mi sono sempre ripromesso di implementare un "pulitore" del db, ma non ho mai trovato uno sponsor Link to comment Share on other sites More sharing options...
tempomania Posted April 2, 2010 Author Share Posted April 2, 2010 ciao,interessante il tuo contributo e di grande aiuto... sono preoccupato solo di togliere di mezzo, passando dallo sviluppo alla pubblicazione del negozio, tutta la "monnezza" che ho creato io...Se anche dovesse rimanere qualcosa qua e là (seguirò il tuo promemoria) in considerazione che ho creato solo due utenti di prova non dovrebbe succedere un granchè non credi?grazie ancora! Link to comment Share on other sites More sharing options...
vinoalvino Posted April 2, 2010 Share Posted April 2, 2010 No righe morte sul db in realtà non rallentano un gran che. Comunque, se volete allargare i vostri orizzonti sull'eliminazione delle righe sul DB, ammettiamo di voler eliminare tutte le righe in tutte le tabelle relative ad un determinato ordine (id_order): * da phpmyadmin o similare facciamo un export sql del DB senza dati* copiamo il testo in un editor* cerchiamo tutte le occorrenze di id_order e prendiamo nota della tabella che lo ospitaVerranno fuori tutte le tabelle in cui l'id dell'ordine è - come si dice in gergo - chiave esterna. Si dovrebbe poi capire se le tabelle figlie hanno prole e in quel caso eliminare tutta la generazione. Link to comment Share on other sites More sharing options...
tempomania Posted April 2, 2010 Author Share Posted April 2, 2010 ciao... mah per quel pò di test di cui ho bisogno la cosa non mi preoccupa tanto ed il tuo promemoria è assai sodisfacenteGrazie mille! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now