<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - PostgreSQL + struktury drzewiaste (trees) + relacje parent-child]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=36&amp;type=atom"/>
	<updated>2008-05-12T09:15:43Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=36</id>
		<entry>
			<title type="html"><![CDATA[Odp: PostgreSQL + struktury drzewiaste (trees) + relacje parent-child]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=138#p138"/>
			<content type="html"><![CDATA[[quote=rski]z tego co depesz pisal, takie definiowanie glebokosci znacznie przyspiesza operacje (jesli sie nie myle)[/quote]
Rzeczywiscie jest to duze przyspieszenie, ale przy tworzeniu/modyfikacji takiego drzewa, trzeba przekalkulowac wszystkie wezly. Majac 40 roznych drzewek (pomiedzy ktorymi galezie sa ze soba powiazane)  robi sie niezly metlik. Mam duze obawy czy przy 4000-5000 rekordow strace kontrole nad caloscia.

Myslalem o czyms takim:

tabela: Komponenty
ID (primary key NOT NULL sequence)
Numer rysunku (UNIQUE NOT NULL)
Nazwa rysunku (text)
Struktura rysunku (refStrukturaID)
Uwagi (text)
---
Przyklad:
1; 001; rysunek 001; 3; pierwszy rysunek
2; 002; zestawienie 001; 2; pierwsze zestawienie

***
tabela: Struktura
ID (primary key NOT NULL sequence)
Typ struktury (UNIQUE NOT NULL)
Nazwa struktury (text)
Uwagi (text)
---
Przyklad:
1;ZG;zestawienie glowne; nadrzedne, nie moze byc wprowadzone do zestawienia podrzednego
2;ZE;zestawienie normalne; podrzedne, zawiera rysunki, moze byc czescia zestawienia glownego
                                         lub innego   zestawienia podrzednego
3;RY;rysunek; standardowy element drzewka, nie moze tworzyc zadnej struktury
4;NO;normalka; znormalizowany element drzewka (np. Polskie Normy - nakretki),nie moze 
                        tworzyc zadnej struktury

***
tabela: Zestawienia
PARENT (refKomponentyID where Komponenty.refStrukturaID=1 or Komponenty.refStrukturaID=2)
CHILD (refKomponentyID where Komponenty.refStrukturaID<>1)
ILOSC (int4; ilosc sztuk)
----------------------------
HMMM... teraz najgorsze (?)...
Zastanawiam sie nad stworzeniem takiej funkcji, ktora jako wynik utworzy inna tabele tymczasowa zawierajaca przekalkulowane wartosci Depth(Level) drzewka pobierajac dane z tabeli Zestawienia.
PARENT         CHILD        ILOSC          DEPTH
    1                  -                -                  0
    1                  2               1                  1
    1                  3               2                  1
    1                  5               1                  1
    5                  8               2                  2
    5                  9               2                  2
    5                  3               1                  2
    ...
i tak dalej...

Czy jest to w jakis sposob wykonalne? Podstawowe zalozenie, jakie bralem pod uwage:
Im mniej danych/informacji bedzie wprowadzanych recznie, tym mniej bledow mozna popelnic.
Moge sie bardzo mylic, bo nie mam duzego doswiadczenia z bazami danych - za co wszystkich przepraszam. Ale jak sie chce czegos nauczyc, trzeba tylko zaczac i probowac, probowac, probowac...

Pozdrawiam]]></content>
			<author>
				<name><![CDATA[kafar82]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=83</uri>
			</author>
			<updated>2008-05-12T09:15:43Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=138#p138</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: PostgreSQL + struktury drzewiaste (trees) + relacje parent-child]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=135#p135"/>
			<content type="html"><![CDATA[z tego co depesz pisal, takie definiowanie glebokosci znacznie przyspiesza operacje (jesli sie nie myle)]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2008-05-06T10:44:39Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=135#p135</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: PostgreSQL + struktury drzewiaste (trees) + relacje parent-child]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=134#p134"/>
			<content type="html"><![CDATA[[quote=rski]Depesz dużo i ciekawie o tym pisal na depesz.com, widziales?[/quote]
Wszedlem na strone Depesz'a. Dzieki za link.
Teraz musze troche przeanalizowac i potestowac te informacje.

Troszeczke nie podoba mi sie fizyczne definiowanie glebokosci drzewka bezposrednio w tabeli. Myslalem o czyms o wiele prostszym (moze poprzez jakas funkcje), co automatycznie generowaloby odpowiedni poziom (level/glebokosc) na bazie samej relacji parent-child niezaleznie od tego z ktorego miejsca w drzewku zaczniemy analizowac jego strukture.

Pozdrawiam]]></content>
			<author>
				<name><![CDATA[kafar82]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=83</uri>
			</author>
			<updated>2008-05-06T09:18:04Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=134#p134</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: PostgreSQL + struktury drzewiaste (trees) + relacje parent-child]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=130#p130"/>
			<content type="html"><![CDATA[Depesz dużo i ciekawie o tym pisal na depesz.com, widziales?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2008-05-05T10:27:27Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=130#p130</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[PostgreSQL + struktury drzewiaste (trees) + relacje parent-child]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=129#p129"/>
			<content type="html"><![CDATA[Witam Wszystkich,
szukam sposobu na zrozumienie, zaimplementowanie i zaprezentowanie (PHP) struktur drzewiastych w relacji ojciec-dziecko.

--- Przedstawienie drzewa
Sekw.   Poziom   Rysunek   Nazwa                                      Ilosc
01            0          zest01      zestawienie glowne (master)       1
02            1          zest05      zestawienie 05                           1
03            2          rys03        rysunek 03                               1
04            2          rys02        rysunek 02                               1
05            1          zest06      zestawienie 06                           1
06            2          rys04        rysunek 04                               1
07            2          M8x16      sruba metryczna M8x16              2
08            2          M8           nakretka M8                               2
09            1          rys07        rysunek 07                               1
10            1          zest02      zestawienie 02                           1
11            2          zest07      zestawienie 07                           1
12            3          rys02        rysunek 02                               1
13            3          M6            nakretka M6 (zgrzewana)           3
14            2          rys05        rysunek 05                               1
15            2          rys08        rysunek 08                               2
16            2          M6x12      sruba M6x12                              3

--- BOM (Bill Of Materials) - ilosc i koszt poszczegolnych komponentow

Sekw.   Rysunek   Nazwa                                       IloscTot     Cena       CenaTot
01            M6            nakretka M6 (zgrzewana)             3           1,0 PLN   3,0 PLN
02            M8           nakretka M8                                 2           1,2 PLN   2,4 PLN
03            M6x12      sruba M6x12                                3
04            M8x16      sruba metryczna M8x16                2
05            rys02        rysunek 02                                  2
06            rys03        rysunek 03                                  1
07            rys04        rysunek 04                                  1
08            rys05        rysunek 05                                  1
09            rys07        rysunek 07                                  1
10            rys08        rysunek 08                                  2

--- Technologia - koszt wykonania/montazu na poszczegolnych etapach

Sekw.   Rysunek   Nazwa                                       IloscTot     Cena       CenaTot
01          zest01      zestawienie glowne (master)        1
02          zest02      zestawienie 02                            1
03          zest05      zestawienie 05                            1
04          zest06      zestawienie 06                            1
05          zest07      zestawienie 07                            1


Wczesniej tego typu struktury tworzylem w EXCEL-u, ale z uwagi drobne roznice zwiazane z aktualizacja, archiwizacja i zarzadzaniem plikami, postanowilem "pobawic sie" bazami danych w lokalnym intranecie.

Niestety mimo, ze istnieje ogromna ilosc materialow dostepnych w Internecie (praktycznie na dowolny temat), troche sie w tym wszystkim pogubilem.
Bardzo prosilbym o jakies sugestie od czego zaczac i na co zwrocic szczegolna uwage.

Pozdrawiam serdecznie]]></content>
			<author>
				<name><![CDATA[kafar82]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=83</uri>
			</author>
			<updated>2008-05-05T09:57:04Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=129#p129</id>
		</entry>
</feed>
