2

Je connais les conventions de nommage pour les tables utilisées par les plugins qui commencent généralement par le nom du plugin puis le modèle pluralisé. Par exemple, disons que j'avais un plugin appelé Poll, avec un modèle appelé PollPoll et un autre modèle appelé PollTag alors les noms des tables résultantes seraient poll_polls et poll_tags. Ils auraient aussi une relation habtm alors quelle est la convention pour ce nom de table? Je crois que ce serait poll_poll_polls_poll_tags, bien que ce soit un peu redondant, c'est logique puisque le premier poll_ représente le nom du plugin, alors que poll_polls et poll_tags se rapportent aux modèles.CakePHP HABTM Conventions de nommage de tables de plugins (pour 1.3)

Avez-vous modifié les conventions de dénomination pour les plugins dans la version 1.3? Ce qui précède est-il correct?

Répondre

2

Je ne suis pas sûr du gâteau 1.3 (je ne l'utilise pas encore), mais si vous avez raison, cela ressemble à un cas de convention conventionnelle et définissant les clés conjointes et étrangères dans les relations du modèle et éventuellement dans le plugin.

Pourquoi votre plugin nécessite-t-il une table de jointure? On dirait un problème de conception. Il y a peut-être un cas où cela est nécessaire, mais si j'avais une relation HABTM avec un plugin, j'ajouterais une colonne modelname à la table du plugin, plutôt que d'avoir à créer une nouvelle table pour chaque modèle que je voulais utiliser.

+0

Les deux modèles de la table de jointure se trouvent dans le plug-in. Peut-être que je n'ai pas précisé cela. Donc Poll_Poll et Poll_Tag font tous deux partie du plugin Poll. Rien d'autre n'utiliserait ces tables sauf pour ce qui est dans ce plugin. Merci! :) – Parris

+0

Mais je ne veux pas vraiment rompre la convention de nommage, je veux suivre la convention, mais la convention semble redondante, et un peu maladroit alors je me demandais si quelque chose de plus propre existait. – Parris

0

Il n'est pas encore convenu que "les tables utilisées par les plugins commencent généralement par le nom du plugin et ensuite le modèle pluralisé". Le seul endroit où cette idée est introduite est an example in the book, qui dit en fait: "il est recommandé de nommer vos contrôleurs de plugins quelque chose de relativement unique afin d'éviter les conflits d'espace de noms avec les applications parentes ... vous voudrez peut-être être créatif avec les noms de contrôleurs, ou préfixez le nom du plugin au nom de la classe. " Vos noms de table/modèle/contrôleur/vue doivent suivre les conventions de dénomination CakePHP normales et prendre des précautions raisonnables pour éviter les conflits d'espace de noms. Donc, il serait parfaitement bien d'avoir une table "foo_orders" pour un modèle "foo_order" dans le plugin Bar.