Progettazione del database

1

Sto sviluppando un'applicazione che richiede una sorta di database dinamico,

Quindi questo è quello che voglio,

Questo è il metodo per leggere i dettagli di una classe, il numero di variabili e metodi saranno noti solo in fase di esecuzione e devo creare un numero di classi come questo.

Nello scenario sopra, come posso progettare un database (MySql) per archiviare tutti questi dati e recuperarli in seguito?

    
posta COD3BOY 24.11.2011 - 05:59
fonte

2 risposte

5

Sarebbe molto lungo darti qui un db completamente normalizzato. Spero che questo ti possa iniziare.

tblClasses 
    pk Name
    AnyOtherDataYouwanttostore

tblAttributes
   fk ClassName <-> tblClasses.Name
   Name
   Visibility
   Type ...

tblFunctions
    fk ClassName <-> tblClasses.Name
    Name
    Visibility
    ReturnType ...

A seconda del progetto, potrebbe essere meglio usare una colonna Identity per la tua chiave primaria per tblClasses e quindi usarla per la chiave esterna nelle altre tabelle. Tutto dipende dai tuoi tipi di dati e dal resto dei dati che devi memorizzare.

    
risposta data 24.11.2011 - 06:05
fonte
0

Potresti voler esaminare MongoDB. È significativamente diverso da MySQL come nel gruppo NoSQL ma sembra che potrebbe essere adatto per quello che ti serve. È possibile memorizzare gli aspetti dinamici in una tabella in un array che è qualcosa che non si può fare in una configurazione MySQL. Se tuttavia hai bisogno / vuoi restare con il database MySQL, il metodo appropriato è dividere i dati tra le tabelle come suggerito da Jonathan Henson.

Per prima cosa la struttura di MongoDB sarebbe qualcosa del tipo:

Classes:
{
  Name : NameValue,
  Attributes : {
      0 : {
        AttName : AttNameValue0,
        AttVisibility : AttVisibilityValue0,
        AttType : AttTypeValue0
        },
      1 : {
        AttName : AttNameValue1,
        AttVisibility : AttVisibilityValue1,
        AttType : AttTypeValue1
        },
      2 : ...
    },
  Functions: {
      0 : {
        FuncName : FuncNameValue0,
        FuncVisibility : FuncVisibilityValue0,
        FuncReturnType : FuncReturnTypeValue0
        },
      1 : {
        FuncName : FuncNameValue1,
        FuncVisibility : FuncVisibilityValue1,
        FuncReturnType : FuncReturnTypeValue1
        },
      2 : ...
    }
  ...
}
    
risposta data 24.11.2011 - 08:02
fonte

Leggi altre domande sui tag