2010-12-01 19 views
0

j'ai messages Table
id
de type ENUM (A, Q)
titre
contenuUne table deux modèles

et j'ai besoin des contrôleurs questions_controller et answer_controller utiliser
s'il vous plaît mènent la bonne façon de

1-
faire 2 modèles (questions et réponses) et utiliser 'postes' comme la table modèle

2-
utilisation modèle de poste questions_controller et answer_controller

Répondre

0

Pour moi, il devrait être une table a un modèle

donc mieux utiliser $ uses = array ('Post'); dans vos contrôleurs. Jusqu'à présent, j'ai compris que vous voulez filtrer les données en fonction de la colonne de type. En fait, votre modèle db est faux, car sauf si elles sont totalement indépendantes, vos réponses doivent appartenir à la question. Cela signifie que vous avez besoin d'une colonne supplémentaire parent_id qui déterminera quel est le nœud parent (question) et les nœuds enfants (réponses).

Si nous avons cette hypothèse, vous pouvez définir une relation dans le modèle comme:

class Post extends AppModel { 
    ... 
    var $belongsTo = array(
     'Parent' => array('className' => 'Post','foreignKey' => 'parent_id', 'conditions' => 'Parent.parent_id IS NOT NULL') 
    ); 
    ... 
} 

Vous avez automatiquement Post et Post-> Parent. Mais je pense qu'il serait préférable d'avoir 2 tables - une qui contient les questions et une autre les réponses.

+0

mais à chaque fois alors je vais (CRUD) les données je dois où la condition (type => A ou Q) donc mon idée était d'échapper à toutes les suggestions – baur79

+0

Ok, je n'ai pas compris votre question. Je vais mettre à jour ma réponse –

+0

merci pour l'aide Nik l'idée d'utiliser 1 seule table fusionnée est d'accélérer les requêtes sql – baur79