Sto lavorando a un progetto che sta creando un sistema per gestire i dati (10-20 milioni di record) raccolti da un'organizzazione di ricerca. Una delle sfide è che anche se i dati sono superficialmente simili in tutta l'organizzazione (con un insieme di campi ragionevolmente simile), ci sono attualmente 20-30 diversi database usati per gestirlo, e forse una dozzina di modi per organizzarlo. Il sistema in costruzione dovrebbe sostituire gradualmente tutti questi elementi.
L'idea è stata quella di creare un singolo modello di dati concettuali e uno schema di database che fosse abbastanza flessibile da gestire tutti i diversi modi di organizzare i dati. Le entità nel modello formano una rete (non una gerarchia rigida) e una singola porzione di dati usa solo alcune delle entità e le relazioni tra di esse. Non ci sarebbe un unico concetto centrale di un "oggetto database" che sarebbe condiviso da tutti.
Sto trovando il modello risultante difficile da capire, sviluppare e spiegare agli utenti, dal momento che ci sono così tanti modi possibili di usarlo ed espanderlo. Sento anche che avere un singolo modello e uno schema di database crea un falso senso di coerenza, senza far pensare alla gente se sia davvero utile avere tanti modi diversi di gestire e archiviare i dati.
Ho iniziato a pensare che invece di un singolo modello flessibile e uno schema di database, forse dovremmo definire solo le entità e gli attributi e avere diversi modelli che descrivono modi alternativi su come possono essere raggruppati. E invece di creare un database relazionale con metodi alternativi per collegare le tabelle, creando un database di documenti che consentirebbe diversi schemi di documenti gerarchici alternativi.
Esistono le best practice sulla modellazione e il database di tali dati che possono essere organizzati in modi molto diversi, nonostante abbiano per lo più set di attributi condivisi?