2010-01-20 8 views
0

Disons que je veux faire une base de données qui relie les émotions aux activités. Serait-il sensé de faire une nouvelle table chaque fois que je rencontre une nouvelle émotion et à l'intérieur de ce tableau dirait les identifiants de toutes les activités qui se rapportent à cette émotion chaque id étant son propre record, ou y at-il une meilleure façon de le faire? ?relations de base de données

Merci à tous!

+1

Six personnes me devança. Je dirais que les réponses ont atteint un consensus.:-) –

Répondre

3

Je pense que vous voudriez une table nommée Emotions qui contiendrait l'univers des émotions. Ensuite, vous voudriez une table nommée Activities qui contient l'univers des activités.

Vous devez ensuite déterminer si chaque émotion peut avoir plusieurs activités et si chaque activité peut avoir plusieurs émotions. Si c'est le cas, c'est ce qu'on appelle une association de plusieurs à plusieurs, et vous voudriez une troisième table qui contient chaque émotion qui est associée à chaque activité. Cette troisième table est souvent appelée table d'association plusieurs à plusieurs, ou table de mappage.

+0

n'aurait pas pu le dire mieux. – thomaspaulb

1

Je ne recommanderais pas d'ajouter une nouvelle table pour chaque émotion. Il serait probablement préférable d'avoir une table d'activité, une table d'émotion, une table de jointure entre l'activité et l'émotion que j'appellerai ActivityEmotion.

1

Il vaudrait mieux avoir une table appelée emotions (id, name), une autre appelée activities (id, name) et une troisième reliant les deux. (id_emotion, id_activity).

0

Il n'est généralement pas judicieux de créer une nouvelle table pour chacun des ensembles d'entités. Configurez vos tables comme ceci:

Emotions -Id -Nom -... d'autres informations

Activités -Id -Nom -... autres informations

ActivityEmotions -EmotionId -ActivityId

De cette façon, ActivityEmotions contient toutes les relations Emotion-Activity.

0

ne pas créer une nouvelle table. J'utiliser 3 tables:

  • un pour les activties
  • une pour les émotions
  • et un activity_to_relation de table (beaucoup à plusieurs)
2

Cette situation est liée à la question de la base de données Normalization . Ce que vous voulez est mis en place un schéma qui ressemble à ceci:

Tableau 'activités': (id, nom)
'émotions' Tableau: (id, nom)
Table « activity2emotion: (emotion_id FK aux émotions. id, activity_id FK aux activités. id)

Questions connexes