CMS con struttura dati sconosciuta [chiusa]

0

Sto cercando di costruire una piccola applicazione sportiva, ma mi piacerebbe costruirla in modo che altre persone / organizzazioni possano usarla così com'è. Queste sarebbero app separate, non un'app che soddisfa tutti. Ad esempio, Football americano avrebbe l'app e il Basket avrebbero la loro app, entità completamente separate.

L'applicazione dovrebbe essere specifica per le proprie esigenze di dati e l'app di ogni organizzazione dovrebbe memorizzare dati diversi. Ma tutti manterrebbero qualche comunanza, come utenti, login, password dimenticate, registrazioni ecc.

Posso fornire un'applicazione di base per tutti gli elementi di archiviazione comuni e le funzionalità del sito web. Quali sono i modi più comprovati e flessibili per consentire a una persona / organizzazione di soddisfare le proprie esigenze di dati ed essere in grado di archiviare / manipolare / recuperare i dati personalizzati con poche modifiche personalizzate della lingua lato server?

Mi chiedo se questo è un buon caso per usare qualcosa come Mongo piuttosto che un RDBMS tradizionale?

Per confermare non si tratta solo di attivare o disattivare alcuni campi nelle tabelle, ma i dati saranno per la maggior parte molto incentrati sull'utente se ciò aiuta.

Aggiorna

Come da commento di Guy, sarà usato per i dati di allenatore e giocatore per ciascuna organizzazione sportiva. Tutto sarà basato sull'allenatore o sul giocatore, le differenze complete e complete tra le organizzazioni sportive che non conoscerei a questo punto, ma so che ci sono differenze tra le persone che ci lavorano, ad esempio:

Per i giocatori e gli allenatori ci saranno dati standard per aiutarli a identificarli e annotare i loro nomi, l'altezza dei giocatori, i giocatori pesano quel tipo di parametri. Dove diventa più complicato è che gli sport hanno modelli completamente diversi per le qualifiche, più flussi diversi, con vari livelli e sottomoduli. Normalmente mi piacerebbe solo creare una colonna "attiva" in grado di attivare o disattivare il campo dispari. Ma sembra che potrebbe essere troppo rudimentale come i modelli sono così diversi.

    
posta Jonnny 12.06.2015 - 15:50
fonte

1 risposta

1

Generalizzazione precoce?

Hai mai letto su La regola del tre ? Penso che tu stia cercando di generalizzare un po 'troppo presto.

It will all be based around either the coach or player, the full complete differences between sports organizations I wouldn't know at this point, but I know there are differences from people who work in them, for example [...]

È molto allettante provare a creare un framework generico da zero, ma questo è rischioso. Non sai quali sono i tuoi requisiti per il football americano, né quello per il basket; non sai veramente cosa sarà generico e cosa verrà risolto.

È molto difficile indovinare come costruire l'astrazione con un approccio top-down. D'altra parte, non è necessario creare un'applicazione completa prima di comprendere quali parti devono essere rese riutilizzabili (ad es. Accessi). Suggerirei di creare prima solo un'applicazione, e vedere come va. Quando hai una conoscenza di base delle regole che governano il tuo dominio, quando la tua prima applicazione ha un set minimo di funzionalità che ti piace, prova a vedere come crearne una seconda.

Cerca di scrivere codice modulare, disaccoppiare il più possibile e refactoring in modo da non ripeterti. Quando hai abbastanza informazioni sulle differenze e le caratteristiche comuni tra le tue applicazioni, sarai in grado di effettuare il refactoring in modo sensato e fornire buone astrazioni.

CMS personalizzato

Hai deciso di scrivere un CMS personalizzato invece di usarne uno, ma puoi ancora esaminare un'implementazione open source esistente (Drupal) per vedere come gestiscono le personalizzazioni. Vedi ad esempio la API dello schema .

Non ho molta esperienza con CMS, né con Mongo. Non credo che rischi di molto scegliendo un approccio piuttosto che un altro come Mongo o RDBMS: scegli quello con cui sei più familiare o quello che vuoi imparare ;-) e rendi la versione 1.0 della tua applicazione.

    
risposta data 18.06.2015 - 14:23
fonte

Leggi altre domande sui tag