Ho una classe che impone la formattazione adatta al database per alcune delle sue proprietà nel metodo __construct()
.
Questo garantisce che se un nuovo oggetto viene creato e salvato, verrà salvato correttamente. Ma il salvataggio di nuovi oggetti avviene raramente. Recuperarli avviene migliaia di volte più frequentemente e queste stesse regole vengono applicate ai dati estratti da db quando attraversano __construct()
, uno spreco di risorse.
Forse un po 'di regex non è qualcosa di cui dovrei preoccuparmi, ma mi dà fastidio. Sto facendo bene?
Se tutta questa roba viene applicata durante la fase di scrittura (scrittura), dovrei evitare di forzarla all'uscita (leggi)? E se sì, come? In caso contrario, perché no?
Potenziali problemi
- Nel caso in cui il database abbia dati memorizzati in modo errato, verrà pulito e travisato nel mio frontend.
- Se cambio i requisiti e aggiorno il codice di pulizia, vedi 1.
Ulteriori informazioni:
Sto salvando oggetti che rappresentano campi di database. Quindi sto memorizzando il loro tipo di dati (varchar, decimale, intero, ecc.), La dimensione ("25" o "9,2", ecc.), I valori predefiniti, l'annullabilità, ecc.
Quindi l'attributo name
dell'oggetto deve essere conforme alle regole di denominazione MySQL (non può iniziare con un numero) più alcune regole che ho aggiunto solo per semplificare le cose (solo numeri, lettere ascii e "_"). Questo sarà usato come nome di colonna nelle tabelle.
Anche la "dimensione" deve corrispondere al tipo di dati.
Questo è tutto PHP e MySQL in esecuzione su Ubuntu.