Come posso dare al mio cliente "pieno accesso" al database MySQL della sua applicazione PHP?

5

Sto costruendo un'applicazione PHP per un client e sto considerando seriamente WordPress o un framework semplice che mi consenta di sviluppare rapidamente funzionalità come forum, ecc.

Tuttavia, il cliente è fermamente convinto di avere "accesso completo" al database e la possibilità di "estrarre i dati". Sfortunatamente, sono quasi certo che rimarranno delusi quando realizzeranno che non saranno in grado di raccogliere facilmente informazioni significative osservando i campi serializzati in wp_usermeta, ecc.

Ho pensato di replicare una variazione sul database live dove applico tutti quei campi ambigui e / o serializzati in qualcosa che è analizzabile da un semplice mortale usando uno strumento semplice come phpMyAdmin.

Sfortunatamente, il client non si accontenta di un semplice pannello di controllo backend dove creo i report personalizzati per loro anche se so che sarebbe l'approccio più semplice e più sano.

    
posta Micah Bolen 07.12.2012 - 03:30
fonte

8 risposte

3

Raccogli i requisiti prima ancora di pensare a * come * Come è stato affermato: raccogliere i requisiti. Può essere che significano solo quello che chiedono; Dump SQL. (Che mi piacerebbe costruire in ogni caso per scopi di backup)

Quindi considera come raggiungere questi requisiti. Potrebbe essere semplice come un plug-in Wordpress, non sono molto attento agli aspetti tecnici dell'API di Wordpress, ma dovrebbe essere possibile.

Potrebbe anche essere possibile scaricare un'app separata per questo tipo di funzionalità. CodeIgniter ha una classe di database piuttosto ampia: ho montato un CMS con blog e statistiche sui database in circa un giorno. Inoltre ci vuole un sacco di preoccupazioni extra dalle tue mani; usando il suo ampio elenco di funzioni di supporto.

Potrebbe essere utile sviluppare personalmente alcune classi di supporto per questo scopo. Potrebbero integrare il tuo toolkit esistente ed essere utile in futuro.

Capisco i vantaggi in termini di tempo dell'utilizzo di una soluzione standard come Wordpress, ma questo può essere negato se si sta costruendo qualcosa come un forum. Non posso fare a meno di pensare che ti morderà a lungo termine ..

    
risposta data 07.12.2012 - 05:27
fonte
2

Determina quali sono le esigenze del tuo cliente e la comprensione dei concetti tecnici. Determinare inoltre quali sono i tempi e cosa sono disposti a spendere. Questa informazione potrebbe portare a prendere alcune decisioni:

  • Utilizzare un approccio immediato come WordPress o qualche altro sistema CMS (esico) abbastanza facile da sviluppare. L'avvertenza a questo è che hai poco da fare sul modello di dati usato. Forse scrivere della documentazione aiuterebbe ad alleviare il dolore. Questo approccio sarà veloce, economico, ma un po 'più difficile sul lato "data mining" delle cose.
  • Sviluppa un sistema personalizzato su qualche framework come Symfony. Questo ti dà il massimo controllo su cosa e come verranno archiviati i tuoi dati. Questo ti permette di essere più flessibile e ti consente di dare al tuo cliente esattamente ciò di cui ha bisogno. Ovviamente questo approccio richiederà più tempo e denaro. Ovviamente anche il rolling your own può essere più divertente che lavorare con qualcosa come WordPress.

Ovviamente una cosa da considerare sempre quando si tratta di un cliente con richieste strane è quanto vale questo cliente. Alcune persone possono essere velenose con richieste dispari e male informate che si trasformano in più problemi di quanti ne valga la pena.

    
risposta data 07.12.2012 - 04:24
fonte
2

Nella mia esperienza ci sono alcuni clienti che non riescono a vedere la ragione. Non so se il tuo cliente rientra in questo gruppo o meno in base alle informazioni disponibili. Sto indovinando il suo possibile dati i toni della tua domanda. Detto questo, il resto della mia risposta si concentrerà su come trattare con questo gruppo di clienti.

Ho avuto un paio di occasioni in cui ho combattuto il buon combattimento e ho cercato di ragionare con clienti che avevano aspettative irrealistiche come questa. Alla fine ovviamente ho "perso" perché il cliente ha sempre ragione. Tuttavia, una volta ottenuto ciò che volevano, hanno inevitabilmente visto a quel punto (se volevano ammetterlo o meno) che avevo ragione e che non stavo controllando ma che le mie raccomandazioni erano state nel loro interesse.

Penso che tu abbia colto in un buon punto, che tu intendessi o meno quando hai citato "accesso completo" nella tua domanda. Penso che la risposta qui sia di far pensare che abbiano pieno accesso o almeno l'accesso che puoi dare. A seconda di quanto tecnicamente esperti sono in grado di farla franca a vari livelli. Non c'è niente di sbagliato nel dargli accesso in lettura. A meno che non abbiano capacità / allenamento tecnici, entreranno e vedranno rapidamente che eri "giusto". Se dai loro l'accesso in sola lettura ma dì loro che hanno "accesso completo" e tornano indietro e dicono di no, puoi sempre giocare a vuoto e "ricontrollare" i permessi. Non penso che saprebbero che non avrebbero avuto pieno accesso a meno che non abbiano provato a scrivere sul database, cosa che in realtà non dovrebbero fare perché rischierebbero di mettere in ginocchio WordPress.

In breve, la mia risposta è "dai loro ciò che vogliono" ... o altre parole fanno pensare che stanno ottenendo ciò che vogliono.

    
risposta data 07.12.2012 - 04:40
fonte
2

Vorrei che accedessero a PHPMyadmin, ma inseriamo una clausola, che qualsiasi perdita di dati non sarà sotto la mia responsabilità, poiché wordpress gestisce i dati in modo diverso come hai detto tu.

    
risposta data 09.12.2012 - 05:32
fonte
1

Apri la porta su cui il server mysql è in ascolto e crea per loro un utente di sola lettura con cui possono connettersi.

    
risposta data 09.12.2012 - 05:56
fonte
0

Vorrei chiedere informazioni sui requisiti di segnalazione: se è davvero un problema che i dati delle app siano in un formato specifico, potrebbe essere necessario perseguire un percorso leggermente diverso (ad esempio Plug-in personalizzato, ecc.). Guarda quali requisiti hanno a riguardo.

Oltre a questo, potresti semplicemente lasciare che abbiano accesso al DB.

    
risposta data 07.12.2012 - 04:11
fonte
0

The Easy Way - come affermato, fallo e basta. Andare avanti con uno strumento capisci che probabilmente non è lo strumento migliore per il lavoro, ti viene pagato e potenzialmente lasciali in una situazione di merda. Ecco come si comporta la maggior parte degli sviluppatori web freelance.

The Hard Way - fai un passo indietro e dimentica Wordpress. Se in realtà vuoi fornire buone soluzioni per i tuoi clienti, devi effettivamente ascoltare le loro esigenze. Speriamo che il tuo set di abilità sia abbastanza ampio da poterlo fare, pur continuando a fare il lavoro vero per loro. Hai già riconosciuto che l'utilizzo di una soluzione in scatola si comporta come preferiscono, ma non soddisfa tutti i loro requisiti.

Chiedigli perché hanno bisogno di accesso al database. La maggior parte delle persone chiederà le cose perché sono ficcanaso, non perché fornisca loro un reale valore commerciale. Se lo fa, allora avrai bisogno di investire molto più tempo ed energia in una soluzione che potrebbe costare 10 volte di più. Se se ne rendono conto, lo spegneranno, ti daranno un lavoro molto più interessante, o troveranno qualcun altro a farlo per loro nel modo più semplice. Perdono ancora, ma almeno questa perdita non è più colpa tua.

Se riesci a mantenerli e a continuare con una pianificazione adeguata, allora si apre davvero la discussione. Ad esempio ... Hanno bisogno di accesso al database per interfacciarsi con altre applicazioni? Apri invece un'API. Non solo questo cambia il tuo modello di dati, ma forse aggiunge anche complessità alla tua architettura.

Come pochi altri hanno accennato a ... assicurati sempre di coprire anche il tuo culo. Se gli dai accesso ai dati, assicurati di essere responsabile per le tue azioni in modo indipendente. Forse consegnerai un'applicazione e si occuperanno del database. Puoi facilmente provare che hanno cambiato qualcosa dalla tua ultima versione a loro. Oppure, si attiva una sorta di registrazione per rintracciarli. O meglio ancora, dai loro accesso limitato in modo che non possano rovinare tutto.

    
risposta data 09.12.2012 - 06:41
fonte
0

Se stai pensando a wordpress, potresti anche giocare al suo strong seme e usare un plug-in di backup in modo che il tuo cliente possa avere una copia del database su richiesta. Li rende felici e in realtà non possono fare alcun danno alla fine della giornata in quanto non possono facilmente aprire l'app, basta giocare con i dati offline.

    
risposta data 09.12.2012 - 06:48
fonte

Leggi altre domande sui tag