🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #89

Re: Bylo: podwojne filtrowanie -- przyklad [SQL]

#89
From: Janusz Dziadoń
Date: Fri, 02 Apr 1999 08:08
97 lines
4182 bytes
Maciej "MACiAS" Pilichowski napisał(a) w wiadomości:
<37023079.4932281@rymunda.torun.pdi.net>...
>>IdCechy
>Czyli mialbym jedna baze samochodowo-rowerowo-jakastam. No tak, ale
>jesli tam od razu zaczne wpisywac cechy, to bede mial problemy z
>nadawaniem IdPojazdu /nie moge zastosowac autoincrement, bo pare cech
>musi byc od jednego pojazdu, a znowu jak dam integera, to sie boje,
>czy podolam pracy w sieci/. Jak wyrzuce to do zewnetrznej bazy, co
>likwiduje problem z IdPojazdu, to w zasadzie wracam do sytuacji
>wejsciowej.


Tak to wlasnie powinno byc. Móglbys miec tabele nazw cech (slownik), oraz
tabele cech poszczególnych typów pojazdów.

Wówczas np.

tabela scechy.dbf (pola idscecha, nazwa) (s jak slownik)
1, kolor
2, dlugosc
3, kabrio
4, czytorower
5, masa
6, liczbaosob
7. numer rejestr

tabela spojazdy.dbf (pola idspojazdu,nazwa)
1, Trek
2, Giant
3, FiatPunto
4, VWPolo
5, Motor Yamaha750

tabela dcechy.dbf (pola iddcechy, idspojazdu, idscechy) (d jak dopuszczalne
cechy dla danego pojazdu)
1, 1, 2 (Trek ma dlugosc)
2, 1, 1 (kolor ramy tez jakis jest)
3, 1, 5 (masa treka)
4, 2, 2 (dlugos gianta)
5, 1, 6 (liczba osób na treka)
6, 2, 1 (dlug gianta)
7, 2, 6 (liczba osób na gianta)
8, 4, 5 (liczba osob do polo)
9, 3, 2 (kolor punciaka)
10, 3, 7 (numer rej punto)
11, 4, 7 (numer rej polo)
12, 5, 7 (numer rej yamaha)
itd.

W tej tabeli zdefiniujesz jakie cechy kazdy pojazd posiadac moze. Jesli
jakies cechy sa oczywiste i dla wszystkich pojazdów to mozna je wrzucic do
tabeli spojazdy jako kolejne pola np. idpojazdu,nazwa, dlugosc, kolor, masa,
liczbaosob, liczbakol

I teraz potrzebna ci bedzie w bazie pojazdow tylko wpis o wartosci danej
cechy a juz nie pojazdu (a poprzez cechy sie do niego dostaniesz), choc
redundantnie mozna to zostawic dla przyspieszenia dzialania
tabela cechy.dbf (pola idpojazd, iddcechy, wartosc) (wartosc najlepiej jako
string i robic konwersje)
1, 1, 2 (trek - dlug, 2 m)
1, 2, $FF002345 - (trek, kolor- kosc sloniowa)
1, 3, 2.4
2, 9, $00043 (punciak piasek pustyni)
2, 10, KWO 2947 chyba jasne
3, 11, KXX 4300 pierwszy samochod VWPolo
4, 12, WGB 4560
5, 12, ZGB 8790 drugi samochod VWpolo bo inny idpojazdu

Zakladam, ze edycje wartosci cech pojazdu przeprowadzisz tak, ze niemozliwym
bedzie wprowadzenie cech niedopuszczalnych tzn dla pojazdu np treka nie
mozna wprowadzac cech innych niz dopuszcza.

Teraz pozostaje jeszcze tylko baza pojazdy (pola idpojazdu, wlasciciel, rok
prod). Tu wlasnie mozesz dodac redundantnie typ pojazdu z bazy typow dla
przyspieszenia dzialania (pola idpojazdu, wlasciciel, rok prod, idspojazdu)
1, Józek, 1999
2, Kasia, 1998
3, Rysio, 1998
4, Jerzy, 1970
5, Edyta, 1990

Koniec.
Chcesz wiedziec jaki pojazd ma Kasia prosze bardzo:
idpojazdu - 2 -> z tabelki chechy ->cecha 9 lub 10 jest zwiazana z
samochodem Punto.

Tu sie az prosi zeby typpojazdu byl w tej ostatniej bazie ale on tez musi
byc w bazie dopuszczalnych cech, zeby dalo sie je okreslic.
Troche to zawile, ale szybciej by sie zrobilo na rysunku niz tekstem, ew.
telefon.

Dodam jeszcze ze sam korzystam z podobnej bazy - mam baze analiz dla pewnych
probek - typow analiz jest wiele ale rozne typy probki dopuszczaja tylko
pewne analizy. I jakos sie kreci. Roboty wiecej ale uzytkownik wniebowziety.
--
Janusz Dziadon
j.dziadon@bph.krakow.pl
Technical Details
Message-ID: <7e1ttj$kg9$1@info.cyf-kr.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!cyfronet!not-for-mail
References: <3707caae.3342053@rymunda.torun.pdi.net> <3701F329.2A565377@ajax.umcs.lublin.pl> <37023079.4932281@rymunda.torun.pdi.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!agh.edu.pl!cyfronet!not-for-mail
From: Janusz Dziadoń <jdziadon@bph.krakow.pl>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: Bylo: podwojne filtrowanie -- przyklad [SQL]
Date: Fri, 2 Apr 1999 10:08:47 +0200
Organization: Academic Computer Centre CYFRONET - Krakow
Lines: 100
Message-ID: <7e1ttj$kg9$1@info.cyf-kr.edu.pl>
References: <3707caae.3342053@rymunda.torun.pdi.net> <3701F329.2A565377@ajax.umcs.lublin.pl> <37023079.4932281@rymunda.torun.pdi.net>
NNTP-Posting-Host: dziadon.bph.krakow.pl
X-Newsreader: Microsoft Outlook Express 4.71.1712.3
X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit