Sto usando un ORM (Propel) e PHP per creare oggetti e memorizzarli in un database. Quindi, sto affrontando un problema ricorrente e sono abbastanza sicuro che questo sia successo a qualcuno prima.
Il mio modello di dati è simile a questo:
Quindi la classe A ha bisogno di un riferimento a qualcosa dalla gerarchia di Clase Parent
(classe astratta), questo non è il problema. L'idea alla base di queste soluzioni è che in futuro sarebbe molto facile creare nuove strategie. Ma ricorda che ho detto che sto usando un ORM per memorizzare informazioni nel database?
Bene, il database ha 3 tabelle: A_table
, B_table
e C_table
. Quindi ecco che arriva la situazione:
A_table
deve essere correlato alla strategia. Qual è il modo migliore per andare?
- Crea una tabella di riferimento del tipo di strategia, assalta un tipo in A_table e disponi di una relazione_id che è solo un utente con un valore (nessuna integrità referenziale di sorta)
- Crea un campo per strategia in A_table e consenti loro di essere nulli
Davvero in attesa di opinioni e perché il suo migliore o l'altro.