Progettare correttamente il database del programma per riflettere la struttura organizzativa

1

Ho problemi a configurare il database del mio programma nel modo giusto. Speravo che voi ragazzi poteste darmi dei suggerimenti su come farlo correttamente. Sto creando un database + client per un'organizzazione senza scopo di lucro che funziona in tutto il Canada.

Ho iniziato a crearlo già con un frontend basato sul Web (PHP con Laravel , HTML, CSS [bootstrap]) . p>

Attualmente l'organizzazione che sto creando questo database ha 3 livelli principali; Gestione principale ({MM}) > Gestione secondaria ({SM}) > e locale ({L}). {MM} ha più {SM}, {SM} ha più {L}:

Attualmente mi sto concentrando sugli ultimi 2 livelli , {SM} e {L}. {SM} si assicura che {L} funzioni correttamente e {L} invia regolarmente documenti e rapporti diversi a {SM}.

Sto cercando di memorizzare alcune informazioni personali; indirizzo, telefono e-mail, ecc. Così come i risultati di classe / istruzione (marchi inclusi). Qualche gestione dell'inventario (chi ha cosa, molto semplice). Alcune informazioni sulla posizione (chi ha quale lavoro). E alcune informazioni sulle presenze (chi ha fatto cosa, dove, per quanto tempo).

Domanda attuale:

Attualmente, sto assegnando ogni {L} id e usandolo come chiave estranea in tutte le tabelle inventario / personale / posizionale, ma è ridicolo fare la chiamata 'dove' ovunque nelle mie query; difficile da tenere traccia quando si eseguono query più complesse.
Mi chiedevo se sarebbe stato meglio separare ogni {L} nel proprio database e accedere a ciascuno a seconda di quale utente è loggato? Non sono sicuro di cosa sarebbe meglio o cosa è accettato come best practice.

Modifica: Scusa, ci ho pensato dopo ... Anche io (probabilmente) voglio essere in grado di consentire a membri diversi di {L} diversi di comunicare o trasferire membri / informazioni tra { L} s. Sarebbe più difficile se fossero divisi? Forse dovrei tenere tutto insieme in un unico database? Si. Sono solo perso e confuso ...:)

    
posta Chris W 13.09.2014 - 23:33
fonte

0 risposte

Leggi altre domande sui tag