<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Commentaires sur : Une clé étrangère présente deux fois dans une table</title>
	<atom:link href="http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/feed" rel="self" type="application/rss+xml" />
	<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table</link>
	<description>Le cadre de développement PHP et son utilisation au jour le jour.</description>
	<lastBuildDate>Sun, 05 Feb 2012 10:59:57 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Par : Gregory</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-6444</link>
		<dc:creator>Gregory</dc:creator>
		<pubDate>Thu, 09 Dec 2010 22:28:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-6444</guid>
		<description>&lt;p&gt;Je viens de découvrir cake, donc je ne suis pas vraiment un expert ;)
Mais dans ton exemple il y a une faute c&#039;est className et non clasName.
Ensuite le message d&#039;erreur signifie qu&#039;il ne trouve pas la table personnel pour le model personnel ne serait ce pas du à la convention d&#039;ecriture des id et de ton personnel_id?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Je viens de découvrir cake, donc je ne suis pas vraiment un expert <img src='http://www.formation-cakephp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> 
Mais dans ton exemple il y a une faute c&#8217;est className et non clasName.
Ensuite le message d&#8217;erreur signifie qu&#8217;il ne trouve pas la table personnel pour le model personnel ne serait ce pas du à la convention d&#8217;ecriture des id et de ton personnel_id?</p>]]></content:encoded>
	</item>
	<item>
		<title>Par : Djone</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-6088</link>
		<dc:creator>Djone</dc:creator>
		<pubDate>Wed, 03 Nov 2010 20:12:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-6088</guid>
		<description>&lt;p&gt;Bonjour,
Je suis en train de refaire mon site de foot avec CakePhp. Un outil formidable qui me facilite bien des choses.&lt;/p&gt;

&lt;p&gt;Cependant, je comprends bien le principe mais avec le principe de ne pas utiliser les RequestAction, je suis bloqué.&lt;/p&gt;

&lt;p&gt;Quelle serait donc la solution pour afficher les équipes locales et visiteuses avec la méthode de ne plus utiliser les RequestAction. &lt;/p&gt;

&lt;p&gt;Ca me bloque pas mal de nuits pour le moment :(&lt;/p&gt;

&lt;p&gt;Merci beaucoup en tout cas pour ces tutos qui me sont bien utiles. Tout est très bien expliqué. Bravo pour votre travail :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Bonjour,
Je suis en train de refaire mon site de foot avec CakePhp. Un outil formidable qui me facilite bien des choses.</p>

<p>Cependant, je comprends bien le principe mais avec le principe de ne pas utiliser les RequestAction, je suis bloqué.</p>

<p>Quelle serait donc la solution pour afficher les équipes locales et visiteuses avec la méthode de ne plus utiliser les RequestAction. </p>

<p>Ca me bloque pas mal de nuits pour le moment <img src='http://www.formation-cakephp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>

<p>Merci beaucoup en tout cas pour ces tutos qui me sont bien utiles. Tout est très bien expliqué. Bravo pour votre travail <img src='http://www.formation-cakephp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>Par : Gruel Enrick</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-3847</link>
		<dc:creator>Gruel Enrick</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:09:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-3847</guid>
		<description>&lt;pre lang=&quot;php&quot;&gt;
array(&#039;className&#039;=&gt;&#039;LdapUser&#039;,&#039;foreignKey&#039;=&gt;&#039;login&#039;),&#039;Service&#039;,&#039;Regime&#039;,&#039;Category&#039;); 
    var $hasMany = array(&#039;Demande&#039;);
    var $hasAndBelongsToMany = array(
                &#039;Personnel&#039;=&gt;array(
                                    &#039;clasName&#039;=&gt;&#039;Personne&#039;,
                    &#039;joinTable&#039;=&gt;&#039;Personne_Personne&#039;,
                                    &#039;foreignKey&#039;=&gt;&#039;personnel_id&#039;,
                    &#039;associationForeignKey&#039;=&gt;&#039;responsable_id&#039;
                                    ),
                &#039;Responsable&#039;=&gt;array(
                                        &#039;clasName&#039;=&gt;&#039;Personne&#039;,
                    &#039;joinTable&#039;=&gt;&#039;Personne_Personne&#039;,
                                        &#039;foreignKey&#039;=&gt;&#039;responsable_id&#039;,
                    &#039;associationForeignKey&#039;=&gt;&#039;personnel_id&#039;
                                        )
                );
}
?&gt;
&lt;/pre&gt;
</description>
		<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'className'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'LdapUser'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'foreignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'login'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Service'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Regime'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'Category'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
    <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$hasMany</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Demande'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$hasAndBelongsToMany</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
                <span style="color: #0000ff;">'Personnel'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>array<span style="color: #009900;">&#40;</span>
                                    <span style="color: #0000ff;">'clasName'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne'</span><span style="color: #339933;">,</span>
                    <span style="color: #0000ff;">'joinTable'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne_Personne'</span><span style="color: #339933;">,</span>
                                    <span style="color: #0000ff;">'foreignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'personnel_id'</span><span style="color: #339933;">,</span>
                    <span style="color: #0000ff;">'associationForeignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'responsable_id'</span>
                                    <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #0000ff;">'Responsable'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>array<span style="color: #009900;">&#40;</span>
                                        <span style="color: #0000ff;">'clasName'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne'</span><span style="color: #339933;">,</span>
                    <span style="color: #0000ff;">'joinTable'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne_Personne'</span><span style="color: #339933;">,</span>
                                        <span style="color: #0000ff;">'foreignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'responsable_id'</span><span style="color: #339933;">,</span>
                    <span style="color: #0000ff;">'associationForeignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'personnel_id'</span>
                                        <span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Gruel Enrick</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-3845</link>
		<dc:creator>Gruel Enrick</dc:creator>
		<pubDate>Thu, 03 Dec 2009 13:06:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-3845</guid>
		<description>&lt;p&gt;Bonjour,&lt;/p&gt;

&lt;p&gt;Je souhaiterais avoir vôtre avis sur un problème que je rencontre en ce moment, je réalise une application avec Cake qui contient une table personne&lt;/p&gt;

&lt;p&gt;Personnes{
id auto-increment
nom varchar(24)
prenom ..
...
responsable_id int
}&lt;/p&gt;

&lt;p&gt;Sachant qu&#039;une personne peut avoir un responsable et que le responsable est lui même une personne, je souhaiterais donc mettre en place une relation reflective.&lt;/p&gt;

&lt;p&gt;Mais si j&#039;ai bien compris vos explications&lt;/p&gt;

&lt;p&gt;je dois donc rajouter un champs (ex:pasresponsable&lt;em&gt;id)  à ma table Personne:
Personnes{
id auto-increment
nom varchar(24)
prenom ..
...
responsable&lt;/em&gt;id int
pasresponsable_id int
}&lt;/p&gt;

&lt;p&gt;et définir mon model comme suit:
&lt;pre lang=&quot;php&quot;&gt;
array(
&#039;clasName&#039;=&gt;&#039;Personne&#039;,                      &#039;joinTable&#039;=&gt;&#039;Personne_Personne&#039;,
&#039;foreignKey&#039;=&gt;&#039;pasresponsable_id&#039;,
&#039;associationForeignKey&#039;=&gt;&#039;responsable_id&#039;
 ),                               &#039;Responsable&#039;=&gt;array(                                       &#039;clasName&#039;=&gt;&#039;Personne&#039;,                      &#039;joinTable&#039;=&gt;&#039;Personne_Personne&#039;,            &#039;foreignKey&#039;=&gt;&#039;responsable_id&#039;                &#039;associationForeignKey&#039;=&gt;&#039;personnel_id&#039;
   )
);
}
?&gt;&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;J&#039;ai implémenté cette solution et malheureusement elle ne fonctionne pas,et m&#039;affiche l&#039;erreur suivante:&lt;/p&gt;

&lt;p&gt;Missing Database Table
Error: Database table personnels for model Personnel was not found. &lt;/p&gt;

&lt;p&gt;Je voudrais savoir si vous auriez une idée de ce qui cloche..ou tout simplement si j&#039;ai mal implémenté ma solution?&lt;/p&gt;

&lt;p&gt;Je vous remercie d&#039;avance.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Bonjour,</p>

<p>Je souhaiterais avoir vôtre avis sur un problème que je rencontre en ce moment, je réalise une application avec Cake qui contient une table personne</p>

<p>Personnes{
id auto-increment
nom varchar(24)
prenom ..
&#8230;
responsable_id int
}</p>

<p>Sachant qu&#8217;une personne peut avoir un responsable et que le responsable est lui même une personne, je souhaiterais donc mettre en place une relation reflective.</p>

<p>Mais si j&#8217;ai bien compris vos explications</p>

<p>je dois donc rajouter un champs (ex:pasresponsable<em>id)  à ma table Personne:
Personnes{
id auto-increment
nom varchar(24)
prenom ..
&#8230;
responsable</em>id int
pasresponsable_id int
}</p>

<p>et définir mon model comme suit:

</p>
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
<span style="color: #0000ff;">'clasName'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne'</span><span style="color: #339933;">,</span>                      <span style="color: #0000ff;">'joinTable'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne_Personne'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'foreignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'pasresponsable_id'</span><span style="color: #339933;">,</span>
<span style="color: #0000ff;">'associationForeignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'responsable_id'</span>
 <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>                               <span style="color: #0000ff;">'Responsable'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span>array<span style="color: #009900;">&#40;</span>                                       <span style="color: #0000ff;">'clasName'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne'</span><span style="color: #339933;">,</span>                      <span style="color: #0000ff;">'joinTable'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'Personne_Personne'</span><span style="color: #339933;">,</span>            <span style="color: #0000ff;">'foreignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'responsable_id'</span>                <span style="color: #0000ff;">'associationForeignKey'</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #0000ff;">'personnel_id'</span>
   <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>




<p>J&#8217;ai implémenté cette solution et malheureusement elle ne fonctionne pas,et m&#8217;affiche l&#8217;erreur suivante:</p>

<p>Missing Database Table
Error: Database table personnels for model Personnel was not found. </p>

<p>Je voudrais savoir si vous auriez une idée de ce qui cloche..ou tout simplement si j&#8217;ai mal implémenté ma solution?</p>

<p>Je vous remercie d&#8217;avance.</p>]]></content:encoded>
	</item>
	<item>
		<title>Par : ComG</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-3215</link>
		<dc:creator>ComG</dc:creator>
		<pubDate>Sun, 12 Jul 2009 12:05:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-3215</guid>
		<description>&lt;p&gt;Bonjour,&lt;/p&gt;

&lt;p&gt;Je me demandais : Comment peut on obtenir la liste (id par exemple) de toutes les rencontres effectuées par une équipe donnée ?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Je récupère la liste des matchs à domicile et ceux à l&#039;exterieur, et je merge les réponses ?&lt;/li&gt;
&lt;li&gt;Je récupère la liste des matchs à domicile (par exemple) avec une condition sur le statut de l&#039;equipe permettant qu&#039;elle soit aussi &#039;visiteurs&#039; :&lt;/li&gt;
&lt;/ul&gt;

&lt;pre lang=&quot;php&quot;&gt;
// Je veux les rencontres de l&#039;equipe 1
$conditions = array(&#039;OR&#039;=&gt;array(array(&#039;EquipeLocaux.id&#039;=&gt;1),array(&#039;EquipeVisiteurs.id&#039;=&gt;1)));
$rencontres = $this-&gt;Equipe-&gt;RencontreDomicile-&gt;find(&#039;all&#039;,array(&#039;conditions&#039;=&gt;$conditions));
&lt;/pre&gt;

&lt;p&gt;Cette solution n&#039;apparaît pas très logique (d&#039;un point de vue écriture, pas programmation) car je recherche les Matchs à domicile même s&#039;ils sont à l&#039;exterieur en fait... Cela revient à considérer que chaque match est un match à domicile pour l&#039;une des équipes. Est ce juste ?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Bonjour,</p>

<p>Je me demandais : Comment peut on obtenir la liste (id par exemple) de toutes les rencontres effectuées par une équipe donnée ?</p>

<ul>
<li>Je récupère la liste des matchs à domicile et ceux à l&#8217;exterieur, et je merge les réponses ?</li>
<li>Je récupère la liste des matchs à domicile (par exemple) avec une condition sur le statut de l&#8217;equipe permettant qu&#8217;elle soit aussi &#8216;visiteurs&#8217; :</li>
</ul>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Je veux les rencontres de l'equipe 1</span>
<span style="color: #000088;">$conditions</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'OR'</span><span style="color: #339933;">=&gt;</span>array<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'EquipeLocaux.id'</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'EquipeVisiteurs.id'</span><span style="color: #339933;">=&gt;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rencontres</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Equipe</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">RencontreDomicile</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'all'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'conditions'</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$conditions</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>




<p>Cette solution n&#8217;apparaît pas très logique (d&#8217;un point de vue écriture, pas programmation) car je recherche les Matchs à domicile même s&#8217;ils sont à l&#8217;exterieur en fait&#8230; Cela revient à considérer que chaque match est un match à domicile pour l&#8217;une des équipes. Est ce juste ?</p>]]></content:encoded>
	</item>
	<item>
		<title>Par : avairet</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-40</link>
		<dc:creator>avairet</dc:creator>
		<pubDate>Thu, 14 Feb 2008 17:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-40</guid>
		<description>&lt;p&gt;Je me sens moi seul d&#039;un coup ;o))&lt;/p&gt;

&lt;p&gt;Il faudrait en parler à la communauté, mais mon niveau d&#039;anglais écrit est vraiment faible pour être sûr de tout transcrire correctement, notamment les arguments pointus de mes gourous SQL...&lt;/p&gt;

&lt;p&gt;J&#039;ai un léger doute quant à une amélioration sur ce point, voici une affirmation de Nate en réponse à un ticket : &quot;Cake does not support compound primary keys in any form, fashion, or capacity.&quot;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://groups.google.com/group/cake-php/browse_thread/thread/4a3f44f8217435cc/39065d9e99a1c5c1?lnk=gst&amp;q=multiple+primary+key#39065d9e99a1c5c1&quot; rel=&quot;nofollow&quot;&gt;Ou cette discussion animée du Google group&lt;/a&gt;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Je me sens moi seul d&#8217;un coup ;o))</p>

<p>Il faudrait en parler à la communauté, mais mon niveau d&#8217;anglais écrit est vraiment faible pour être sûr de tout transcrire correctement, notamment les arguments pointus de mes gourous SQL&#8230;</p>

<p>J&#8217;ai un léger doute quant à une amélioration sur ce point, voici une affirmation de Nate en réponse à un ticket : &laquo;&nbsp;Cake does not support compound primary keys in any form, fashion, or capacity.&nbsp;&raquo;</p>

<p><a href="http://groups.google.com/group/cake-php/browse_thread/thread/4a3f44f8217435cc/39065d9e99a1c5c1?lnk=gst&amp;q=multiple+primary+key#39065d9e99a1c5c1" rel="nofollow">Ou cette discussion animée du Google group</a></p>]]></content:encoded>
	</item>
	<item>
		<title>Par : Pierre-Emmanuel Fringant</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-39</link>
		<dc:creator>Pierre-Emmanuel Fringant</dc:creator>
		<pubDate>Thu, 14 Feb 2008 16:04:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-39</guid>
		<description>&lt;p&gt;&quot;On déclare juste la PK sur id auto-increment et on pose deux index simple sur les autres champs ?&quot;
- C&#039;est la solution que j&#039;ai adoptée, ça n&#039;est pas très satisfaisant, mais cela permet de continuer à utiliser certains automatismes de Cake.
&quot;Et si je migre mon appli sur un autre SGBD ou sous un autre langage de script, je suis bon pour refaire toutes mes tables ?!&quot;
- Et oui ! D&#039;où une sérieuse attente d&#039;amélioration sur ce point.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>&laquo;&nbsp;On déclare juste la PK sur id auto-increment et on pose deux index simple sur les autres champs ?&nbsp;&raquo;
- C&#8217;est la solution que j&#8217;ai adoptée, ça n&#8217;est pas très satisfaisant, mais cela permet de continuer à utiliser certains automatismes de Cake.
&laquo;&nbsp;Et si je migre mon appli sur un autre SGBD ou sous un autre langage de script, je suis bon pour refaire toutes mes tables ?!&nbsp;&raquo;
- Et oui ! D&#8217;où une sérieuse attente d&#8217;amélioration sur ce point.</p>]]></content:encoded>
	</item>
	<item>
		<title>Par : avairet</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-37</link>
		<dc:creator>avairet</dc:creator>
		<pubDate>Thu, 14 Feb 2008 15:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-37</guid>
		<description>&lt;p&gt;Ouf, cela me rassure que tu penses comme moi ! Car en lisant le Google Group sur ce thème, j&#039;avais l&#039;impression de passer pour un ch... qui casse les pieds avec sa théorie et sa modélisation !&lt;/p&gt;

&lt;p&gt;Donc d&#039;après toi, pour toute table qui n&#039;est pas &quot;cake compliant&quot;, nous devons rajouter un champ id auto-increment ?
Mais alors, au niveau de la création de la table (par exemple avec DbDesigner), comment on fait ? On déclare juste la PK sur id auto-increment et on pose deux index simple sur les autres champs ? Et si je migre mon appli sur un autre SGBD ou sous un autre langage de script, je sui bon pour refaire toutes mes tables ?!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Ouf, cela me rassure que tu penses comme moi ! Car en lisant le Google Group sur ce thème, j&#8217;avais l&#8217;impression de passer pour un ch&#8230; qui casse les pieds avec sa théorie et sa modélisation !</p>

<p>Donc d&#8217;après toi, pour toute table qui n&#8217;est pas &laquo;&nbsp;cake compliant&nbsp;&raquo;, nous devons rajouter un champ id auto-increment ?
Mais alors, au niveau de la création de la table (par exemple avec DbDesigner), comment on fait ? On déclare juste la PK sur id auto-increment et on pose deux index simple sur les autres champs ? Et si je migre mon appli sur un autre SGBD ou sous un autre langage de script, je sui bon pour refaire toutes mes tables ?!</p>]]></content:encoded>
	</item>
	<item>
		<title>Par : Pierre-Emmanuel Fringant</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-36</link>
		<dc:creator>Pierre-Emmanuel Fringant</dc:creator>
		<pubDate>Thu, 14 Feb 2008 14:42:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-36</guid>
		<description>&lt;p&gt;Je suis tout à fait d&#039;accord avec toi, j&#039;ai eu le problème avec une relation HABTM (gestion de frais de port par article et par pays) et il est impossible de faire proprement (conceptuellement parlant) sans faire les choses à la main. J&#039;espère que cela sera amélioré dans les prochaines versions.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Je suis tout à fait d&#8217;accord avec toi, j&#8217;ai eu le problème avec une relation HABTM (gestion de frais de port par article et par pays) et il est impossible de faire proprement (conceptuellement parlant) sans faire les choses à la main. J&#8217;espère que cela sera amélioré dans les prochaines versions.</p>]]></content:encoded>
	</item>
	<item>
		<title>Par : avairet</title>
		<link>http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table/comment-page-1#comment-35</link>
		<dc:creator>avairet</dc:creator>
		<pubDate>Thu, 14 Feb 2008 13:57:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.formation-cakephp.com/9/une-cle-etrangere-presente-deux-fois-dans-une-table#comment-35</guid>
		<description>&lt;p&gt;Ce que je voulais dire, c&#039;est que théoriquement parlant, la table &quot;rencontres&quot; que tu décris est en fait une &quot;relation réflexive&quot; de la table &quot;équipes&quot;, c&#039;est à dire qu&#039;elle se fait une HABTM sur elle même.&lt;/p&gt;

&lt;p&gt;Donc en modélisation relationnelle, la table &quot;rencontres&quot; ne devrait pas contenir de champ id auto-increment, mais simplement deux fois la clé primaire de la table &quot;équipes&quot;. Et par ailleurs, la clé primaire de la table &quot;rencontres&quot; devrait se faire sur les deux colonnes à la fois, car nous sommes dans un cas &quot;plusieurs à plusieurs&quot;.&lt;/p&gt;

&lt;p&gt;Or, Cake saute allègrement à pieds joints sur le concept de relation réflexive et sur les clés primaires multiples ou composées.&lt;/p&gt;

&lt;p&gt;Je me bats avec cela depuis quelques jours, car l&#039;ajout &quot;artificiel&quot; d&#039;un champ id dans ce type de relation entraîne une baisse de perforamnce qui peut vite être conséquente, en plus d&#039;être discutable SQLellement parlant.&lt;/p&gt;

&lt;p&gt;Je nuance toutefois, car dans ton cas, on pourrait très bien numéroter les rencontres et là, la colonne id aurait une justification possible. Cependant, dans ce cas, la table rencontres contiendrai d&#039;autres champs, comme &quot;résultat&quot;, &quot;cartons jaune&quot;, &quot;nombre de buts&quot;, etc. et ne serait pas une simple table de liaison...&lt;/p&gt;

&lt;p&gt;Voilà un lien vers une discussion que j&#039;ai eu avec des gourous SQL, qui conforte mon idée que Cake pêche un peu à ce niveau :
http://www.developpez.net/forums/showthread.php?t=486821&lt;/p&gt;

&lt;p&gt;et ensuite :
http://www.developpez.net/forums/showthread.php?t=490905&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Ce que je voulais dire, c&#8217;est que théoriquement parlant, la table &laquo;&nbsp;rencontres&nbsp;&raquo; que tu décris est en fait une &laquo;&nbsp;relation réflexive&nbsp;&raquo; de la table &laquo;&nbsp;équipes&nbsp;&raquo;, c&#8217;est à dire qu&#8217;elle se fait une HABTM sur elle même.</p>

<p>Donc en modélisation relationnelle, la table &laquo;&nbsp;rencontres&nbsp;&raquo; ne devrait pas contenir de champ id auto-increment, mais simplement deux fois la clé primaire de la table &laquo;&nbsp;équipes&nbsp;&raquo;. Et par ailleurs, la clé primaire de la table &laquo;&nbsp;rencontres&nbsp;&raquo; devrait se faire sur les deux colonnes à la fois, car nous sommes dans un cas &laquo;&nbsp;plusieurs à plusieurs&nbsp;&raquo;.</p>

<p>Or, Cake saute allègrement à pieds joints sur le concept de relation réflexive et sur les clés primaires multiples ou composées.</p>

<p>Je me bats avec cela depuis quelques jours, car l&#8217;ajout &laquo;&nbsp;artificiel&nbsp;&raquo; d&#8217;un champ id dans ce type de relation entraîne une baisse de perforamnce qui peut vite être conséquente, en plus d&#8217;être discutable SQLellement parlant.</p>

<p>Je nuance toutefois, car dans ton cas, on pourrait très bien numéroter les rencontres et là, la colonne id aurait une justification possible. Cependant, dans ce cas, la table rencontres contiendrai d&#8217;autres champs, comme &laquo;&nbsp;résultat&nbsp;&raquo;, &laquo;&nbsp;cartons jaune&nbsp;&raquo;, &laquo;&nbsp;nombre de buts&nbsp;&raquo;, etc. et ne serait pas une simple table de liaison&#8230;</p>

<p>Voilà un lien vers une discussion que j&#8217;ai eu avec des gourous SQL, qui conforte mon idée que Cake pêche un peu à ce niveau :
<a href="http://www.developpez.net/forums/showthread.php?t=486821" rel="nofollow">http://www.developpez.net/forums/showthread.php?t=486821</a></p>

<p>et ensuite :
<a href="http://www.developpez.net/forums/showthread.php?t=490905" rel="nofollow">http://www.developpez.net/forums/showthread.php?t=490905</a></p>]]></content:encoded>
	</item>
</channel>
</rss>

