È brutto memorizzare dati in formato JSON o dovrei usare mySQL? [chiuso]

2

Ho creato un'applicazione e il tutto è costruito attorno a un semplice sistema di archiviazione dei dati.

  • Crea un array.
  • Converti in JSON.
  • Aggiungi <?php die() all'inizio per impedire l'accesso.
  • Salva su file PHP e salva su disco.

Poi.

  • Apri file.
  • Rimuovi <?php die(); .
  • Decodifica da JSON.
  • Modifica / Leggi array.
  • Salva di nuovo sul file se modificato.

È un modo sicuro per archiviare i dati? Quando ho fatto questo non conoscevo MySQL, e ancora non lo so bene. Tuttavia, voglio decidere se modificare la mia piattaforma mentre è piccola e cambiarla in MySQL o continuare a utilizzare il sistema attuale.

Non ho mai riscontrato problemi con un file in fase di modifica allo stesso tempo, e al momento non sembra rallentare il sito web.

Vale la pena di cambiare la mia applicazione di medie dimensioni ora e non dovrei dover passare settimane a cambiarlo ora sta crescendo? Oppure il sistema attuale è abbastanza sicuro da continuare a essere utilizzato.

Questo è ciò che il sistema attualmente funziona;

Impostazione dati:

function setDat($dat_file, $sec, $subsec, $val) {
    global $INS_DIR;
    $dat_file_dat = json_decode(str_replace("<?php die(); ", "", file_get_contents($_SERVER['DOCUMENT_ROOT'] . $INS_DIR . 'data/dat-'.$dat_file.'.php')), true);
    $dat_file_dat[$sec][$subsec] = [$val];
    file_put_contents($_SERVER['DOCUMENT_ROOT'] . $INS_DIR . 'data/dat-'.$dat_file.'.php', "<?php die(); ".json_encode($dat_file_dat));
}

Recupero dati:

function getDat($dat_file, $sec, $subsec) {
    global $INS_DIR;
    $dat_file_dat = json_decode(str_replace("<?php die(); ", "", file_get_contents($_SERVER['DOCUMENT_ROOT'] . $INS_DIR . 'data/dat-'.$dat_file.'.php')), true);
    return $dat_file_dat[$sec][$subsec][0];
}

E così via.

Se spiego questo:

  • $dat_file è il file in cui verranno archiviati i dati, un file all'interno di /data/
  • $sec è il livello principale dell'array che desideri modificare $array[$sec] ;
  • $subsec è l'array di secondo livello $array[$sec][$subsec] ;

Lo faccio perché ogni applicazione può utilizzare $sec come categoria per i dati e $subsec e la ricerca all'interno della loro categoria. Possono anche avere il loro file. Quindi le impostazioni principali del file hanno una categoria chiamata impostazioni del tema e quindi alcune informazioni come il tema attivo che è impostato su default.

Quindi, detto questo, vale la pena mantenere il sistema attuale e ce la farà in futuro? Quali sono i suoi punti deboli e qualsiasi problema con esso.

o

Dovrei iniziare a cambiare tutto su MySQL, anche se dovrò riprogrammare l'intero lato dei dati del mio programma? Quali sono i lati positivi di questo e di aspetti negativi?

    
posta Austin Collins 02.08.2015 - 20:06
fonte

3 risposte

3

Se vuoi seguire l'approccio per i file e utilizzare principalmente dati statici e di configurazione, utilizza SQLite (PHP entry ): è un RDBMS proprio come MySQL, ma è un singolo file locale in una directory di tua scelta ( può anche essere nella cartella dell'applicazione), installazione gratuita, leggera e in grado di soddisfare i requisiti dei dati con coerenza e un sacco di duro lavoro di prova dietro di esso - lì, tutto fatto per te senza doversi preoccupare di un nuovo tipo di gestione dei dati . La migrazione dei dati con SQLite comporta essenzialmente lo spostamento / la copia del file .sqlite.

Per qualcosa di un po 'più grande vai con MySQL o PostgreSQL.

    
risposta data 02.08.2015 - 23:21
fonte
0

Hai preso in considerazione l'utilizzo di un database noSQL basato su JSON come MongoDB ? Potrebbe forse adattarsi alle tue esigenze.

E ovviamente puoi inserire il testo JSON in qualche database relazionale SQL come PostgreSQL , MariaDB (o MySQL) o Sqlite

Salvare lo stato persistente in quanto alcuni file PHP sono fragili, soggetti a errori (attenzione a codice di iniezione ), e probabilmente non molto efficiente. Diverse lingue meglio di PHP (es. HOP , Opa , Ocaml con Ocsigen , ...) sta gestendo la persistenza (e il mix di browser e calcolo del server) molto meglio di PHP.

    
risposta data 03.08.2015 - 11:03
fonte
-3

Se chiedi la mia opinione e il mio consiglio. Vai con MySQL perché negli anni precedenti ho creato un'applicazione utilizzando una struttura dati JSON, ma è stato molto difficile da mantenere (potrebbe anche essere la mia mancanza di conoscenza).

JSON è bello e semplice. Lo ammetto !! Ma non così potente come MySQL.

Vai con MySQL.

MySQL Vs JSON

    
risposta data 03.08.2015 - 10:23
fonte

Leggi altre domande sui tag