2011-02-02 7 views
1

J'ai 3 tables.Base de données relationnelle -> CoreData

Classes 
--------------- 
classid 
name 
description 

Sessions 
--------------- 
sessionid 
name 
start 
end 

Schedule 
--------------- 
scheduleid 
name 
start 
end 
classid 
sessionid 

Je sais comment mettre tout cela dans une base de données relationnelle, mais pour autant que leur mise en place comme des entités .. Je ne sais pas qui a besoin/doit être l'objet principal ...

Répondre

2

Que voulez-vous dire par « objet principal »? C'est juste un graphique d'entités et d'objets. Dans ce cas, vous devez probablement avoir une entité pour chaque table (au singulier: Class, Session, Schedule), avec des propriétés pour les données réelles et des relations pour les clés étrangères.

Vous ne pouvez pas spécifier manuellement la clé primaire, CoreData le fait (c'est un détail d'implémentation).

Vous auriez probablement quelque chose comme ceci:

Classe

  • nom (string)
  • Description (string)
  • des horaires
  • (à-plusieurs à l'annexe)

Session

  • nom (string)
  • début (date)
  • fin (date)
  • horaires
  • (à-plusieurs à l'annexe)

Horaire

  • nom (string Début
  • début (date)
  • fin (dat e)
  • classe ((inverse) relation à la classe)
  • session ((arrière), relation avec la session)

Je peux recommander propre documentation d'Apple sur CoreData, en particulier les sections sur les outils de modélisation des données en Xcode. Il est possible de dessiner essentiellement vos modèles de données à l'aide de Xcode et de générer automatiquement les déclarations de classe (facultatives) pour vous.

+0

"Vous ne pouvez pas spécifier manuellement la clé primaire, CoreData fait cela (c'est un détail d'implémentation)" Apple supprime la possibilité de 'clés Id Idiot et oblige le développeur à penser en termes de clé naturelle! J'aime ça ! – PerformanceDBA

0

L'objet principal serait votre calendrier. Vous avez une annexe qui a

-id 
-name 
-start 
-end 
-Class (or IList<Class>) 
-Session (or Ilist<Session>) 
Questions connexes