» »

Relacija med tremi tabelami; kako uporabit referential integrity

Relacija med tremi tabelami; kako uporabit referential integrity

Microsoft ::

Do zdej sem se dodal par tabel v Access bazo ( slika).

Prvi problem je sledec. Narocilo ima stolpca Sprejel in ZadolziteMontaza. Oba stolpca imata vneseno stevilo, ki je potem id v tabeli Zaposleni. Ampak ne morem naredit se ene relacije med tabelo Zapolseni in Narocilo. Namrec, narocilo lahko sprejme oseba A, zadolzitev pa dobi oseba B. A hkrati sta obe osebi vneseni v tabeli Zaposleni. Katero relacijo potem rabim naredit?

Druga stvar pa je uporaba Enforce Referential Integrity. Ta sedaj ni vkljucena, tako da relacije prakticno zgubijo svoj pomen, saj lahko recimo v tabeli Narocilo vnesem tak id za stanje, ki ga v tabei Stanje sploh ni. Kar ni vredu. Ce vkljucim to moznost, dobim nek error. Sicer sem ze pozabil, kak error je, samo vseeno. Zanima me potem pravilna uporaba (insertanje podatkov). Sploh tudi ob tem, da bi imel vklopljen Cascade Update Related Fields.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

OwcA ::

Nisem zverziran v uporabi teh čarovnikov, ampak zakaj ne moreš imeti dveh relacij na isto polje hkrati? Logično ne vidim nobenega navzkrižja.
Otroška radovednost - gonilo napredka.

BigHugo ::

A imaš tabele že polne.
LP BigHugo

BigWhale ::

Mogoce wizard nima opcije za kliknit? :P

PS: Saj vseeno a so tabele polne ali ne... Constraint bi se moral dal narest. Ce je DB kolikor tolikor zgleden, nevem mogoce access tega ne podpira.

Zgodovina sprememb…

  • spremenil: BigWhale ()

Microsoft ::

Ok. Dve relaciji se data naredit, samo potem mi naredi dve tabeli; Zaposleni in Zaposleni_1. Mogoce je to prav, samo da graficno ne prenese dveh relacij med dvema tabelama, pa potem naredi se eno tabelo.
Drgace pa ja, da se narediti dve relaciji na isto polje. Sej, ce pogledas Zaposleni tabelo, ma tri. Samo vsaka od teh je na drugo tabelo. Nikjer pa ni tako, da bi mel dve tabeli in dve relaciji med njima.
Pa tudi nevem, kako naredit relacijo brez wizarda. V SQL je, samo v Access pa tega ne najdem.


by Miha

p.s.:Naslov teme bi moral spremenit. Gre za dve relaciji med dvema tabelama.
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

Zgodovina sprememb…

NaGGie ::

Če prav razumem bi ti rad imel povezavo med Naročilo.Id - Zaposleni.Id in med Naročilo.ZadolzitevMontaza - Zaposleni.Id
Meni access ne dela nobenih problemov z dvojnimi povezavami med istimi tabelami, mogoče ga res moti, če niso prazne.
Aja pa z vklopljenim enforce referential integrity tudi ne dela problemov.
There's no turning back when you're chasing the wind...

OwcA ::

Bom še direktno povedal, nehaj uporabljati orodja, ki te očitno omejujejo. Kar želiš narediti, se seveda da (na nivoju jezika), v Accessu lahko pišeš poljubne SQL poizvedbe (vsaj včasih se je to dalo), kje je torej problem?
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

Microsoft ::

Imam eno relacijo: Zaposlen.id ->8 Narocilo.Sprejel.
Hocem se eno: Zaposlen.id ->8 Narocilo.ZadolzitevMontaza

OwcA, si preprican, da se da naredit relacijo kar z sql stavkom (kar se da) in potemto pognat v Access-u?

Sicer pa morem pocas spat. Bom juter tole prckal naprej.


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

OwcA ::

Relacije se v samo strukturo baze vpletejo s constraint-i. Če to podpira Access ne vem, celo dvomim. Pri poizvedbi relacijo opišemo z JOIN stavkom, to vem, da se da. Če imaš težave s prvim, izberi bolj primerno orodje, Access ni namenjen tako zapletenim bazam.
Otroška radovednost - gonilo napredka.

Fizikalko ::

Za resnejše delo uporabi Oracle ali IBM DB2. Tam je tvoj problem šala mala.

OwcA ::

No, že, njemu verjetno precej bolj dragi, MS SQL Server bi zadoščal. ;)
Otroška radovednost - gonilo napredka.

Fizikalko ::

Maš prav, bi bilo tudi zadosti, ja.

darkolord ::

V Accessu lahko čisto normalne SQL stavke napišeš... Tisti wizardi ti samo sql stavke v ozadju generirajo

Microsoft ::

Se da mogoce te stavke ali kake loge teh stavkov pogledat?


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

darkolord ::

:)

Pogledaš/popraviš jih lahko, ko narediš en query (brez querya itak relationshipi niso uporabni)... Uporabiš tvoj priljubljeni način, da si zgradiš query, pol pa klikneš nekam (recimo naslovno vrstico okna) z desnim pa izbereš SQL View... Tam pol vidiš, kaj ti je on spacal in lahko tisto popraviš oziroma napišeš čist po svoje, če ti paše

mercutio ::

Ej Microsoft ne zamerit, sam fu...ng shit ej..... F1 bi pa že lahko znal pritisnit, nadležni sponki "SQL" vpisat in malo po helpu pobrskat.

Microsoft ::

Tole zadno, kar vidva govorita, ze uporabljam 100 let. Ampak, gre se za sql stavek, ki naredi relacijo! Z ono, da recimo podatke bere, vem, da se da pogled spremnit na sql. Jst itak sql stavke urejam tam (izjema so inner join, ki so v oklepajih, v sql server pa ne, pa sm mal zmeden, pa se potratno je vse pisat na roke).


by Miha
s8eqaWrumatu*h-+r5wre3$ev_pheNeyut#VUbraS@e2$u5ESwE67&uhukuCh3pr

Zgodovina sprememb…

darkolord ::

Stavek, ki nardi relacije? e?

Lej, tiste relacije v accessu so ena fiktivna stvar, ki jo potem uporabi tisti čarovnik, da ti pri queryu nardi eno relacijo... Če ne delaš querya, so tiste relacije čisto brez pomena...


Vredno ogleda ...

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

MS Access (strani: 1 2 )

Oddelek: Programiranje
647297 (5355) travica
»

problem z referenčno integriteto relacije v MSAccessu

Oddelek: Programiranje
81414 (911) xtrat
»

Podatkovna baza filmov

Oddelek: Programiranje
131677 (1268) levan
»

[Access 2007]

Oddelek: Programiranje
132608 (2208) urosz
»

Access- relacije

Oddelek: Programiranje
141913 (1754) ghost

Več podobnih tem