2010-03-23 12 views
0

Supposons que je le modèle de données suivantes:de base de données - Relations avec les entités différentes

Entity Person 
Attribute name String 
Attribute personType String 
Attribute dailyRecords 

Entity CarpenterDailyRecord 
Attribute numberOfNailsHammered Int 
Attribute picNameOfFinishedCabinet String 

Entity WindowWasherDailyRecord 
Attribute nameOfBuildingWashed String 
Attribute numberOfWindowsWashed Int 

je voudrais créer un à plusieurs entre les Person.dailyRecords et 1 des entités d'enregistrement quotidien (qui change en fonction du type de personne). Bien sûr, je pourrais créer une entité CarpenterPerson et WindowWasher qui pointe chacun vers sa structure d'enregistrement quotidienne unique, mais je dois regrouper les gens dans mon application d'une manière ou d'une autre.

donc si je fais un groupe d'entité:

Groupe Entité personnes Attribut tableau

je suis toujours bloqué. comment puis-je pointer vers plusieurs entités de personne différentes?

Il doit y avoir une réponse évidente, c'est juste que je suis si nouveau à tout cela. Merci!

Répondre

0

Créez une entité parente (DailyRecord) qui gère la relation (Personne < - >> DailyRecord). [CarpenterDailyRecord | WindowWasherDailyRecord] hérite alors de DailyRecord. Cependant, le risque est que tous les enfants (WindowWasherDailyRecord, CarpenterDailyRecord) se trouvent dans une table de la structure sqlite sous-jacente et puissent donc avoir un impact sur les performances. Ce n'est pas une raison pour éviter l'héritage, juste quelque chose à prendre en compte lors de la conception de votre modèle de données.

+0

merci Marcus. il pourrait y avoir un chevauchement suffisant dans les données représentées dans les différents types d'enregistrements que les données de base n'auront pas à créer trop de colonnes uniques. Je vais devoir enquêter. Je suppose que l'entité DailyRecord pourrait être abstraite? Je vais lire plus loin sur ce sujet mais je pense que j'ai l'essentiel. Merci encore! – carotene

+0

Oui, désolé que ce n'était pas clair, l'entité DailyRecord serait abstraite. BTW, n'oubliez pas d'accepter la réponse que vous trouvez correcte. –