Mysql
 sql >> Database >  >> RDS >> Mysql

Estendere le classi nel database

Consiglio vivamente di consultare Ereditarietà tabella classi modello come definito da Martin Fowler.

Questo modello di progettazione crea un'unica tabella che contiene i dati comuni a tutti gli edifici, ad esempio, e quindi richiede una tabella separata per tutti i dati correlati a un tipo specifico di edificio. Una cosa che trovo utile è memorizzare un campo "tipo" nella tabella padre in modo da sapere che tipo di entità hai senza dover cercare i record corrispondenti nelle tabelle figlie.

Consiglierei di evitarlo, a meno che tu non abbia un motivo molto specifico e ben definito per utilizzare un design Entity-Attribute. Per prima cosa, quando si utilizza questo tipo di progettazione diventa impossibile sfruttare i vincoli del database per controllare quali input sono richiesti e quali tipi di valori sono consentiti. Dall'altro, rallenterà drasticamente tutte le query che devono estrarre dati da quei tipi di campi perché i dati archiviati in quei campi non possono essere indicizzati come faresti normalmente.