» »

Access- relacije

Access- relacije

ghost ::

Imam eno vprasanje recimo da imam 3 tabele primer: 1. je za izdelke 2.je za kategorije izdelkov 3. pa kategorije se bolj podrobno opisane. Kako bi lahko naredil relacije med vsemi, da bi v tabeli izdelek izbral kategorijo in z izbirom kategorije omogocil izbiro samo dolocenih izdelkov iz 3. tabele?? , se to da narediti brez uporabe mysql? Hvala za pomoc

imagodei ::

1.) Zakaj bi imel opise kategorij ločene od kategorij?
2.) MySQL nima veze z Accessom. No, ja, ni čisto res: sintaksa je sorodna.
3.) Brez SQL poizvedbe se tega ne da narediti. Obstajajo pa vizualni pripomočki (čarovniki), ki ti pomagajo sestaviti poizvedbo, tako da ti praktično ni treba znati niti osnov SQL-a.
4.) Ja, Access ima tako orodje vgrajeno.
- Hoc est qui sumus -

ghost ::

V 2. tabeli so splosne kategorije v 3. pa so opisane kategorije bolj podrobno zato se gre . Vseeno hvala

FlashM ::

V 2. tabeli so splosne kategorije v 3. pa so opisane kategorije bolj podrobno zato se gre . Vseeno hvala


Verjetno gre v 3. tabeli za kakšne podkategorije (torej da se te kategorije iz 2. tabele, delijo še na bolj podrobne kategorije), če sem prav razumel? Če to ne drži, potem bi po pravilih normalizacije morali biti opisi kategorij v isti tabeli kot kategorije, torej v 2. tabeli.

Access ma kar kul Wizard in GUI tool, za izdelavo relacij med tabelami in generiranje poizvedb, sicer pa bi blo fino da bi povedal kaj več o tvojih tabelah (npr. katere atribute vsebujejo, katerih podatkovnih tipov so posamezni atributi, kakšni so tvoji primarni in tuji ključi), da bi ti s tem lažje pomagali.

ghost ::

Tocno tako kot si rekel v 3. tabeli so podkategorije ( se opvaicujem ker sm se napacno izrazil ), zelim narediti tako da bi recimo v prvi tabeli izbral kategorijo iz 2. tabele( primer:rac. trgovina : kategorija procesorji ) , ko bi to izbral bi avtomatsko za izbiro iz 3. tebele (primer: podnozja procesorjev,tipi pomnilnikov, modeli motherboardov,...) dal na izbiro samo podnozja procesorjev in ne vseh ostalih delov 3.je tabele.Ce nism bil dovolj jasn povejte bom naredu scrshote.Hvala za pomoc.Tipi pa so skoraj povsod besedilo (ime kategorije )in id (samostevilo,primarni kljuc) .

FlashM ::

Jst bi to naredil tkole, da bi pravzaprav imel 4 tabele in sicer:

1.) 1., 2. in 3. tabela ostanejo takšne kot so.
2.) Potem bi dodal še 4. tabelo, ki bi služila kot vmesna tabela med 2. in 3. tabelo. Zakaj?
Ker ena izmed podkategorij iz 3. tabele se lahko pojavi pri dveh različnih kategorijah iz 2. tabele.
Prav tako ima kategorija iz 2. tabele VEČ podkategorij iz 3. tabele.
Some stupid example: recimo neka 'ACME Bio Drink' pijača se lahko nahaja v tako v kategoriji 'sokovi'
kot v kategoriji 'bio izdelki'. Prav tako ima kategorija sokovi več podkategorij sokov (sadni,
naravni, sirupi, bio,...)

Ta vmesna tabela ima lahko le dva stolpca, ali pa več, odvisno od tega katere podatke želiš beležiti, sicer
pa je dovolj, da vmesna (4.) tabela, nima niti id-ja vrstice, temveč ima samo sestavljen primarni ključ.
Prva kolona je foreign key iz 2. tabele, druga kolona pa foreign key iz 3. tabele.

Poleg teh dveh kolon pa lahko imaš tudi kolono z id-jem vrstice, pa tudi kolono z datumom/časom dodane vrstice,
potem imaš lahko tudi kater user je dodal v bazo to kombinacijo. Pač odvisno od potreb in zahtev.

3.) Prav tako boš verjetno potreboval še 5. tabelo, ki bo enaka 4. tabeli in bo vmesna tabela med 1. in 2. tabelo. Zakaj?
Če se vrednosti iz 1. tabele vežejo na 2. tabelo v relaciji 1:1, potem je itak brezveze, da sploh imaš 2. tabelo.
Na tak način potem poveš katera kategorija iz 1. tabele se veže na več kategorij iz 2. tabele.

Zgodovina sprememb…

  • spremenil: FlashM ()

imagodei ::

ghost,

to kar bi ti rad, je v bistvu izdelava forme. Access vse to omogoča, ni pa trivialno, da bi kar v dveh vrsticah napisal na forumu. Bo treba kakšno knjigo odpret.

Če češ, lahko kakšno več rečeva na ZS.
- Hoc est qui sumus -

FlashM ::

Nikakor nisem govoril o izdelavah form. Govoriva o normalizaciji. Vmesne tabele so v tvojem primeru obvezne, če želiš doseč to,
da ima neka kategorija VEČ podkategorij. There is no other way to do it (načeloma). Sem videl tudi že druge varjante, ampak je
tale najbolj običajna in standardna.

imagodei ::

FlashM,

moj odgovor ni bil namenjen tebi, še manj sem pa OP. ;) Focus, man, focus!
- Hoc est qui sumus -

imagodei ::

FlashM> "There is no other way to do it (načeloma). Sem videl tudi že druge varjante, ampak je
tale najbolj običajna in standardna. "


Oh, oh... :\ Zakaj pa ne bi ostale kar samo tri tabele, pa bi v tretji tabeli bil sestavljen ključ? Kot jaz razumem OP-ja, so podkategorije fiksno vezane na glavno kategorijo. Se pravi, če ima v prvi tabeli Izdelki npr. Gosti sok, potem je kategorija iz 2. tabele Brezalkoholna pijača, podkategorije iz tretje tabele pa so npr. gazirana, naravni sok, topli napitek (ne pokaže pa npr. podkategorij žgane pijače, grenčice, likerji - ker pač to ne spada v kategorijo Brezalkoholna pijača).

V tem primeru je lahko tabela 3 Podkategorije kamot taka:
1 1 Naravni sok
1 2 Gazirana pijača
1 3 Topli napitek
2 1 Žgana pijača
2 2 Grenčica
2 3 Liker
- Hoc est qui sumus -

FlashM ::

Sej pravim da obstajajo tudi druge rešitve. Vendar usually se te zadeve reši z vmesnimi tabelami. Seveda pa to ni nujno.

imagodei ::

Običajno se z vmesnimi tabelami rešuje zadeve, ki se lahko križajo oz. many-to-many relacije; npr., če bi lahko bila podkategorija Liker tudi v kategoriji brezalkoholnih pijač.

Če gre za navadne šifrante, je to ena tabela. Če boš delal navzkrižne sklice, pa rabiš tabelo z dvema tujima ključema. Npr. v primeru tabele plačnik (kjer je en partner lahko plačnik za več podružnic).

Za one-to-many (kot v primeru podkategorij glede na kategorije) ne rabiš nove tabele.
- Hoc est qui sumus -

FlashM ::

Običajno se z vmesnimi tabelami rešuje zadeve, ki se lahko križajo oz. many-to-many relacije; npr., če bi lahko bila podkategorija Liker tudi v kategoriji brezalkoholnih pijač.

Če gre za navadne šifrante, je to ena tabela. Če boš delal navzkrižne sklice, pa rabiš tabelo z dvema tujima ključema. Npr. v primeru tabele plačnik (kjer je en partner lahko plačnik za več podružnic).

Za one-to-many (kot v primeru podkategorij glede na kategorije) ne rabiš nove tabele.


Sej pravim, da je lahko nek točno določen izdelek v dveh različnih kategorijah (bio sok je lahko med sokovi ali pa bio izdelki). In isto je lahko v računalniški trgovini.

imagodei ::

Ja, ikzekli, če je tako zastavljeno. OP pa pravi (glej poudarjen del):
Tocno tako kot si rekel v 3. tabeli so podkategorije ( se opvaicujem ker sm se napacno izrazil ), zelim narediti tako da bi recimo v prvi tabeli izbral kategorijo iz 2. tabele( primer:rac. trgovina : kategorija procesorji ) , ko bi to izbral bi avtomatsko za izbiro iz 3. tebele (primer: podnozja procesorjev,tipi pomnilnikov, modeli motherboardov,...) dal na izbiro samo podnozja procesorjev in ne vseh ostalih delov 3.je tabele.
- Hoc est qui sumus -

ghost ::

LP, spet se obracam na vas , in me samo nekaj zanima (nwm al sm slep al pa nism najdu na netu nc pametnega) imam pac postavljene relacije , kaj moram vpisat v pogoj za že ustvarjeno poizvedbo da bo izpisala samo tisto kar bi v obrazcu kliknil. Kot je blo ze prej omenjeno ce izberem kategorijo naj bi vrnilo v poizvedbi samo tisto kar je v drugi tabeli oznaceno z isto kategorijo. Hvala za pomoc


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C] Kazalčna aritmetika

Oddelek: Programiranje
293003 (1784) blay44
»

MySQL izpis vsebine iz dveh tabel

Oddelek: Programiranje
91181 (1069) iMark
»

Predlog - tabela - plačilni sistemi

Oddelek: Programiranje
5965 (774) programercek
»

PHP - pomoč

Oddelek: Izdelava spletišč
131850 (1494) BlueRunner
»

PHP/HTML strokovnjaki help!

Oddelek: Izdelava spletišč
261811 (1522) TheHijacker

Več podobnih tem