Autor Zpráva
matak
Profil
Máte někdo zkušenosti s objektovým programováním?

Když entita se mi skládá s dalších např 4 podentit. Např.

chci polozit dotaz, ale objekt je definovan

s
objekt
objekt->vlastnost1
objekt->vlastnost2
objekt->vlastnost3
objekt->vlastnost4

ted chci z databáze vytahnout udaje ktere priradim pod objekt a nasledne dalsi pod objekty reprezentujici vlastnosti, kekazde vlastnosti prislusi jedna tabulka v dtb

jedna moznost jak polozit dotaz je tak:

$q = "SELECT *
FROM {$tb}_objekt as o
LEFT JOIN {$tb}_objekt_vl1 as o1 USING (ID)
LEFT JOIN {$tb}_objekt_vl2 as o2 USING (ID)
LEFT JOIN {$tb}_objekt_vl3 as o3 USING (ID)
LEFT JOIN {$tb}_objekt_vl4 as o4 USING (ID)
WHERE o.ID = '".$ID."'";

nebo zvlast což by objektovému modelu odpovídalo více

$q = "SELECT * FROM {$tb}_objekt WHERE ID = $ID";
$q = "SELECT * FROM {$tb}_objekt_vl1 WHERE ID = $ID";
$q = "SELECT * FROM {$tb}_objekt_vl2 WHERE ID = $ID";
$q = "SELECT * FROM {$tb}_objekt_vl3 WHERE ID = $ID";
$q = "SELECT * FROM {$tb}_objekt_vl4 WHERE ID = $ID";

bude hodně znát položení takovýchto 5 dotazů oproti jednomu se složenými tabulkami??

nebo lze nejak naplnit objekt, slozenym dotazem?
thingwath
Profil
To asi není úplně vhodná reprezentace dat. OR mapování je každopádně věda a to i v PHP. Asi bych se na to vykašlal a použil nějaký hotový nástroj.
matak
Profil
tím máš na mysli?není mi jasné nástroj?a prosím upřesni mapování?
thingwath
Profil
No, mi není hlavně příliš jasné, jak to myslíš ten tvůj model. Obvykle (ale to nemusí dávat žádný smysl) by se to asi udělalo tak, že jeden objekt by náležel jedné tabulce v databázi. Já osobně bych popřemýšlel asi o něčem (například) z tohoto: http://wiki.cc/php/Object_Relational_Mapping
matak
Profil
no vždyť mě to tak souhlasí, objekt rovná se tabulce v dtb, ale ostatní tabulky jsou vlastnosti objektu
napr.

uzivatel
oddeleni

jsou dva objekty

to cele je modul uzivatele a uzivatel je ridici trida, nevim jestli to pisu spravne

ale mam to takto udelane
uzivatel->oddeleni->get_oddeleni()

pro priklad

uzivatel->jmeno;
uzivatel->oddeleni->nazev
thingwath
Profil
Zmátlo mě slovo vlastnost, to sice může být reference na jinou třídu, ale nečekal jsem to. Použil bych jeden dotaz, ale ten rozdíl asi nebude zásadní.
matak
Profil
ok, takze jeden dotaz, ale jak pak
nacpes ten dotaz do promennych jednotlivycho podtrid?

chtel bych vyuzit funkce mysql_fetch_object??
Toto téma je uzamčeno. Odpověď nelze zaslat.