2010-11-26 13 views
0

Dans ma base de données, j'ai une table 'favoris' et une table 'activité'. J'utilise le Zend Framework et j'ai une classe qui modélise les deux tables. Maintenant, quand quelqu'un aime un article, je dois ajouter une ligne dans la table d'activité. La manière la plus évidente de le faire serait de créer les méthodes addActivity et addFavorite dans les classes de tables respectives, et chaque fois qu'un article est favorisé, j'appellerais alors la méthode addActivity. Bien que ce soit très simple, cela ne me semble pas naturel.PHP: Je ne sais pas comment modéliser une relation de base de données

Avez-vous des suggestions sur une meilleure façon de faire cela?

+1

Quelles sont les relations entre les classes, les favoris contiennent-ils une activité? Existe-t-il des dépendances de base de données ou existe-t-il seulement deux tables distinctes? Plus d'infos s'il vous plaît. – baklap

Répondre

0

J'avais déjà rencontré le même problème dans le passé. Je l'avais résolu, en utilisant votre ontologie, avec une méthode statique dans la table d'activité, l'appel a été quelque chose comme:

Activity::addNew($favouriteID, Activity::FAVOURITE); 

et oui il semble un naturel. Vous parlez d'Aspect Orientation ici, j'ai peur ...

Une autre façon de le faire (mais ne pas choisi pour d'autres raisons), serait en ajoutant un élément déclencheur à la base de données, qui peupler activité, chaque fois qu'un favori a été ajouté. Je ne voulais pas aller là-bas parce qu'il est surestimé dans la littérature qui déclenche bientôt hors de contrôle. Cela dépend de la quantité de logique d'application que vous voulez avoir au niveau de la base de données ...