Supporto » Sviluppare con WordPress » Inserire nuove tabelle in db

  • Buongiorno ho un sito WordPress in cui ho necessità di creare delle nuove tabelle, una per ogni utente, che contengono come dati alcuni campi di una tabella di un plugin installato.
    Per ogni nuovo utente verrà quindi creata una nuova tabella, che verrà interrogata per selezionare alcune informazioni che verranno usate in una query successiva.
    Ho già letto qualcosa sulle modalità di interazione con il db wordpress quindi posso fare riferimento alla documentazione online per quanto riguarda la creazione delle tabelle.
    Volevo chiedere se è comunque una procedura consigliata quella di creare in questo modo delle tabelle custom da associare ad ogni nuovo utente e se ci sono delle possibili criticità da tenere in considerazione, considerando che magari il numero di utenti può essere abbastanza alto. Grazie

    • Questo topic è stato modificato 6 anni, 2 mesi fa da lucio1980.
Stai visualizzando 7 risposte - dal 1 al 7 (di 7 totali)
  • Ciao, esiste già una tabella, wp_usermeta, apposta per contenere dati aggiuntivi degli utenti. Inoltre sono presenti funzioni apposite per le operazioni CRUD:
    update_user_meta()
    delete_user_meta()
    add_user_meta()

    maggiori info https://developer.wordpress.org/plugins/users/working-with-user-metadata/

    ciao

    • Questa risposta è stata modificata 6 anni, 2 mesi fa da MassimoM.
    Chi ha creato la discussione lucio1980

    (@lucio1980)

    ok quindi potrei usare questa singola tabella per salvare i dati aggiuntivi di più utenti. Provo a vedere se riesco a popolare come vorrei la tabella in questione. Grazie, ciao

    Chi ha creato la discussione lucio1980

    (@lucio1980)

    wp_usermetea può essermi utile però per inserire tutti i dati che mi servono dovrei inserire un array con molti elementi nel campo value. Per bypassare questa difficoltà (che mi rallenterebbe un po’ il lavoro) a questo punto tornerei a chiedere se è consigliabile o comunque accettabile la pratica di creare una tabella per ogni utente in cui poter inserire tutti questi dati.

    • Questa risposta è stata modificata 6 anni, 2 mesi fa da lucio1980.

    Ciao, quella che ti ho indicato è la pratica consigliabile. Poi dipende dalle tue necessità, quandi dati aggiuntivi devi inserire, quanti utenti prevedi di gestire, ecc, ecc.
    Comunque creare una tabella per ogni utente non mi sembra una buona idea. Al limite crei UNA tabella aggiuntiva e all’interno inserisci gli utenti con i dati aggiuntivi.
    Devi tenere presente che dovrai scrivere le tue query per le operazioni CRUD su quella tabella, e non puoi usare quelli di wp che sono ottimizzate anche in termini di performance.
    Puoi cominciare da qui
    https://codex.wordpress.org/Class_Reference/wpdb

    Chi ha creato la discussione lucio1980

    (@lucio1980)

    Ah pensavo che potevo usare comunque quelle funzioni una volta che la tabella veniva inserita nel database.
    Comunque sintetizzo quello che dovrei fare. Per ogni utente ho un certo un numero di liste che contengono a loro volta dei nominativi.
    Cioè sarebbe utente i-esimo collegato a N clienti organizzati in M liste.
    Quindi metterei come campi della tabella: ID utente, nome-cognome-email clienti, lista 1, lista 2, …., lista M. Per associare i clienti alle diverse liste metterei un valore distintivo sotto il campo della lista a cui appartiene.
    Per distingure nelle query tra, ad esempio, lista 1 di utente 1 e di utente 2 utilizzerei gli ID degli stessi.
    Se questa cosa la potessi fare anche usando la sola wp_usermeta sarebbe ok, ma dovrei inserire tutti i dati dei clienti (per lista) in un singolo value.

    • Questa risposta è stata modificata 6 anni, 2 mesi fa da lucio1980.
    • Questa risposta è stata modificata 6 anni, 2 mesi fa da lucio1980.

    Ciao, darti una risposta su cos’è meglio fare o meno, è difficle, ci sono troppe variabili da considerare e non sapendo tutta la logica dell’applicazione che devi sviluppare diventa difficile se non impossibile dire cos’è meglio fare.

    Poss solo dare dei consigli che sono:

    • Leggi con attenzione i link che ti ho inviato prima,
    • Considera che il campo meta_value della tabella wp_usermeta e di tipo longtext il che significa che puoi inserire fino a 4gb di dati (fonte: https://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html).
    • Se crei una tabella nuova per i dati aggiuntivi degli utenti devi far corrispondere i dati agli utenti registrati in Wp con i loro ID già presenti.
    • Nome email e cognome per gli utenti sono già gestiti da WP.

    ti lascio altri due link per approfondire l’argomento DB e WordPress.
    WordPress Database Description
    Create Table with Plugins

    ciao

    Chi ha creato la discussione lucio1980

    (@lucio1980)

    grazie per i consigli (e per i link).
    Comunque ho corretto dove avevo scritto ‘Per associare gli utenti alle diverse liste’ perchè volevo dire ‘per associare i clienti alle diverse liste’.

Stai visualizzando 7 risposte - dal 1 al 7 (di 7 totali)
  • Il topic ‘Inserire nuove tabelle in db’ è chiuso a nuove risposte.