2010-09-27 5 views
2

Je me demandais s'il y avait une chose comme «appartient à» relation, et quelle était sa fonction, ou si c'était juste le contraire de «a un»?DDD, ERD, ORM: en a un, ou appartient à un?

La question se présentait lors de la construction d'un ORM, et je voulais trouver un moyen de déterminer si une instance d'entité doit être supprimée automatiquement, par exemple:

utilisateur « a beaucoup » Discussion

Discussion « a beaucoup » commentaire

discussion 'a un' utilisateur

commentaire 'a un' discussion

Supposons que vous supprimez un utilisateur instan ce. Ses instances de threads associées doivent rester intactes. Mais si vous supprimez une instance de thread, ses commentaires doivent être supprimés.

Avec le schéma ci-dessus, l'ORM ne peut pas indiquer quand supprimer et quand ne pas le faire. Mais si j'utilise « appartenir à », il pourrait être une solution:

utilisateur « a beaucoup » Discussion

Discussion « a beaucoup » Commentaire

Discussion « a un » utilisateur

Le commentaire 'appartient à un' thread

Est-ce que cela a du sens? C'est possible pour l'ORM, mais ERD couvre-t-il ce scénario? Les connexions one-to-one/one-to-many ne semblent pas suffisantes.

Des pensées?

Répondre

2

Les implémentations générales que j'ai vues toutes fournissent une relation "appartient à". Techniquement, cela existera dans toute relation "A plusieurs" car la clé étrangère existera dans la table enfant.

Une définition de Kohana's ORM class documentation suggère que le fait de savoir si une relation un-à-un est «a un» ou «appartient à» dépend de l'emplacement du champ de clé étrangère. Si c'est dans la même table que le modèle de base, c'est une relation "appartient à". Si c'est dans une autre table, alors c'est une relation "a un".

Questions connexes