2011-03-20 4 views
0

J'ai une grande quantité de données à stocker dans une base de données. Les données sont: pour chaque jour du mois, il y a 5 événements. Les 5 événements sont divisés en 2 sous-événements différents qui doivent être séparés, ce qui signifie que pour chaque jour du mois, il y a 10 événements. Au niveau supérieur, les 5 événements ont des titres différents et plus bas, les sous-événements impairs ont un en-tête et les sous-événements pairs ont un en-tête. Je voudrais normaliser ces données avant de les stocker, mais j'ai du mal à trouver une structure DB définitive et je cherche des indices à ce sujet. J'ai très peu d'expérience avec la normalisation (c'est pour un projet personnel sur lequel je travaille) mais je préfère le faire correctement puis tout vider dans le db en une seule fois.Normaliser une grande quantité de données pour la base de données

Edit: Exemple de données demandées:

20ème Mars:

événement 1: Sous-événement 1: 04h30, Sous-événement 2: 05h00
Event 2: Sous événement 1: 12h30, Sous-événement 2: 13h00
Événement 3: Sous-événement 1: 16h15, Sous-événement 2: 16h45
Événement 4: Sous-événement 1: 18h15 , Sous-événement 2: 18h45
Événement 5: Sous-événement 1: 20h00, Sous-événement 2: 20h45

Tous les événements se répètent à des moments différents tout au long du mois et toute l'année.

+1

Pourriez-vous donner un exemple de vos données? – Eelke

+0

Exemple de données ajoutées –

+0

N'ignorant aucune des réponses, j'ai été occupé et n'ai pas eu l'occasion d'y jeter un coup d'œil. –

Répondre

1

Juste avoir une table d'événements avec une ligne pour chaque événement. Le sous-événement peut avoir une clé étrangère pour le même événement pour référencer l'événement dont ils sont les sous-événements.

0

Ces tables normalisent les données:

Event 
     Date 
     Time 
     Event Type (FK to Event Type) 
     PK Date,Time,Event Type 
     *Example Data: 2011-03-30; 04:30; 1 top;* 

    Event Type 
     Type 
     Heading 
     PK Type (Values 1(top)-5(top),1(odd)-5(even)) 
     *Example Data: 1 top; This is event type 1 top level;* 

    Parent Event 
     Child Event (FK to Event) 
     Parent Event (FK to Event) 
     PK Child Event, Parent Event (and possibly Index each field independently) 
     *Example Data: 2011-03-30, 04:30, 1top; 2011-03-31, 05:00, 1 even;* 

EDIT: Comme demandé par exemple ajouté des données. Les relations sont données par les clés étrangères (FK), de sorte que l'exemple associe un événement de premier niveau à un sous-événement de type 1 pair.

+0

Pourriez-vous donner un exemple du type d'information. qui serait tenu dans chaque table et les relations entre les tables? –

1

Voici un modèle simple pour réaliser ce que vous recherchez. En fonction de la façon dont vous allez utiliser ces données, vous pouvez ajouter des clés alternatives ou modifier les clés primaires comme bon vous semble. Faites moi savoir si vous avez des questions.

enter image description here

EDIT en réponse au commentaire:

pas exactement si je comprends ce que vous demandez. Voici les détails cependant. Les relations entre les tables sont définies dans le modèle. Si vous ne comprenez pas (pardonnez-moi si vous le faites) le modèle je recommanderais de rechercher des diagrammes d'ER utilisant la notation de pied de corneille.

EventId (INT) : Incremental 
EventTypeCode (CHAR (2)) : Used to cover Events 1-5 as E1 - E5 
Description (VARCHAR) : Info describing E1-E5 
SubEventId (boolean) : Since you only declare two options 1 & 2 

Espérons que cela aide.

+0

Pourriez-vous donner un exemple du type d'information.qui serait tenu dans chaque table et les relations entre les tables? –

+0

@Al voir mes modifications dans ma réponse. Faites-moi savoir si je n'ai pas compris votre question postée dans le commentaire ci-dessus. – swisscheese

Questions connexes