<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum CakePHP.org.pl - Baza-Model-Relacje]]></title>
		<link>http://forum.cakephp.org.pl/topic/123/bazamodelrelacje/</link>
		<description><![CDATA[Najświeższe odpowiedzi w Baza-Model-Relacje.]]></description>
		<lastBuildDate>Tue, 23 Feb 2010 08:29:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Baza-Model-Relacje]]></title>
			<link>http://forum.cakephp.org.pl/post/579/#p579</link>
			<description><![CDATA[<p>Hi,</p><p>jestem zaspany, czytalem pobieznie, ale z moich oswiadczen wynika ze bindowanie modeli w callback&#039;ach to zly pomysl, z czasem jak aplikacja sie rozwinie (nigdy nie mow nigdy) inny model byc moze bedzie chcial zapisac jakies dane, i trafi na bindowanie w callback&#039;u.&nbsp; Bindowanie wszytskiego jak popadnie zgodnie z modelem bazy i jego relacjami (na sztywno jako pol modelu)&nbsp; to tez zly pomysl, w koncu dojdziesz do momentu w ktorym Edytujac instytuty, bedziesz miec dostep do modeli Doctor, Profesor .. itd, mozna ograniczac przez recursive, ale to takie dzialanie na sile i raczej dobre dla malych aplikacji z 3 tabelami <img src="http://forum.cakephp.org.pl/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>Zrob sobie jakas metode modelu np updateRecord($data), dobinduj co potrzeba, o ile potrzeba i to powinno zalatwic sprawe. Co prawda moze dojsc do zwielokrotnienia kodu odpowiedzialnego za bindowanie, ale aplikacja zyska na lekkosci <img src="http://forum.cakephp.org.pl/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>Odnosnie bazy ....&nbsp; &quot;ja tu widze niezly burdel&quot; , jak krzyczal Sturh <img src="http://forum.cakephp.org.pl/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>Co bys powiedzial na takie types : <br /></p><div class="codebox"><pre><code>id int(11)
model varchar(64) - Nazwa Modelu np Doctor
model_id int(11) - id z odpowiedniego modelu np 11 - Wskazuje na record 11 w tabeli doctors
name varchar</code></pre></div><p>teraz tabela types staje sie tabela laczaca w asocjacji habtm&nbsp; &nbsp;=&gt;&nbsp; &nbsp;<a href="http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM">http://book.cakephp.org/view/83/hasAndB … Many-HABTM</a></p><br /><p>Druga sprawa model Degrees - bedziesz to edytowac, czy sklepiesz raz i tak zostanie po wsze czasy?&nbsp; Jezeli to drugie, to zrob z tego pole enum tabeli&nbsp; people.</p><p>I na koniec, po co powielac te same tabele, naweyt trzymajace te same dane ... </p><p>Doctor/ Profesor / Habilitacja - wszystkie wspolne pola wpakuj w jedna tabele, wydziel kolejne/kolejna na pola wlasciwe dla profesorow , doktorow itd ....</p>]]></description>
			<author><![CDATA[null@example.com (robal77)]]></author>
			<pubDate>Tue, 23 Feb 2010 08:29:07 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/post/579/#p579</guid>
		</item>
		<item>
			<title><![CDATA[Baza-Model-Relacje]]></title>
			<link>http://forum.cakephp.org.pl/post/577/#p577</link>
			<description><![CDATA[<p>Witam, <br />dopiero zaczynam zabawę z CakePHP więc nie wiem wszystkiego. Mam pewien problem. Zacznę najpierw od bazy:<br /><a href="http://img28.imageshack.us/i/testkb.png/"><span class="postimg"><img src="http://img28.imageshack.us/img28/3646/testkb.th.png" alt="http://img28.imageshack.us/img28/3646/testkb.th.png" /></span></a><br />Tak mam ułożona bazę, stworzyłem sobie tak na szybko wykorzystując bake. Aktualnie tabele mam połączone w sposób:<br />1. Person model(dla tabeli People):<br /></p><div class="codebox"><pre><code>var $belongsTo = array(
        &#039;Type&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Type&#039;,
            &#039;foreignKey&#039; =&gt; &#039;type_id&#039;,
        ),
        &#039;Degree&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Degree&#039;,
            &#039;foreignKey&#039; =&gt; &#039;degree_id&#039;,
        ),
        &#039;Institute&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Institute&#039;,
            &#039;foreignKey&#039; =&gt; &#039;institute_id&#039;,
        )
    );</code></pre></div><p> <br />2. Type:<br /></p><div class="codebox"><pre><code>var $belongsTo = array(
        &#039;Habilitation&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Habilitation&#039;,
            &#039;foreignKey&#039; =&gt; &#039;habilitation_id&#039;,
        ),
        &#039;Professor&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Professor&#039;,
            &#039;foreignKey&#039; =&gt; &#039;professor_id&#039;,
        ),
        &#039;Doctor&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Doctor&#039;,
            &#039;foreignKey&#039; =&gt; &#039;doctor_id&#039;,
        )
    );

    var $hasMany = array(
        &#039;Person&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Person&#039;,
            &#039;foreignKey&#039; =&gt; &#039;type_id&#039;,
            &#039;dependent&#039; =&gt; false,
        )
    );</code></pre></div><p>3. i np professors:<br /></p><div class="codebox"><pre><code>var $hasMany = array(
        &#039;Type&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Type&#039;,
            &#039;foreignKey&#039; =&gt; &#039;professor_id&#039;,
            &#039;dependent&#039; =&gt; false,
        )
    );</code></pre></div><p>pozostałe 2 doctors, habilitations są podobne(będą). Zadaniem moim jest aby przy tworzeniu nowej osoby(tabela People) zaznaczyć przypisanie do któreś z tych trzech D/P/H. Po to stworzyłem tabele types, tylko nie bardzo wiem czy dobrze relacje w cake utworzyłem. Zacząłem się zastanawiać czy do połączenie nie wykorzystać aftersave() gdzie po zapisaniu w tabeli osobnika ręcznie utworzyć połączenie do wybranej tabeli.</p><p>Jakby coś było niezrozumiałe to pytać wytłumaczę ;]</p>]]></description>
			<author><![CDATA[null@example.com (Vanord)]]></author>
			<pubDate>Thu, 18 Feb 2010 15:58:38 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/post/577/#p577</guid>
		</item>
	</channel>
</rss>

