<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum CakePHP.org.pl - Baza-Model-Relacje]]></title>
	<link rel="self" href="http://forum.cakephp.org.pl/feed/atom/topic/123/"/>
	<updated>2010-02-23T08:29:07Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.cakephp.org.pl/topic/123/bazamodelrelacje/</id>
		<entry>
			<title type="html"><![CDATA[Odp: Baza-Model-Relacje]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/579/#p579"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[robal77]]></name>
				<uri>http://forum.cakephp.org.pl/user/143/</uri>
			</author>
			<updated>2010-02-23T08:29:07Z</updated>
			<id>http://forum.cakephp.org.pl/post/579/#p579</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Baza-Model-Relacje]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/577/#p577"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Vanord]]></name>
				<uri>http://forum.cakephp.org.pl/user/261/</uri>
			</author>
			<updated>2010-02-18T15:58:38Z</updated>
			<id>http://forum.cakephp.org.pl/post/577/#p577</id>
		</entry>
</feed>

