zwiazek 1:n - wymagany
bartoo - 02-05-2006 00:38
zwiazek 1:n - wymagany
Witam W moim modelu zwiazkow encji wystepuje zwiazek miedzy "pozycja zamowienia" i "zamowienie". Wydaje mi sie, ze po obu stronach powinien byc wymagany, poniewaz "pozycja zamowienia" nie moze istniec bez "zamowienia" i na odwrot. W zwiazku z tym mam pytanie: jak taki zwiazek zrealizowac w RDBMS? Czy wstawianie danych do tabel powinienem zrealizowac w transakcji?
Pozdrawiam bartoo
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 02-05-2006 00:39
Dnia Mon, 1 May 2006 21:47:01 +0000 (UTC), " bartoo" <bartoo3.WYTNIJ@gazeta.pl> wklepał(-a):
>Witam >W moim modelu zwiazkow encji wystepuje zwiazek miedzy "pozycja zamowienia" i >"zamowienie". Wydaje mi sie, ze po obu stronach powinien byc wymagany, >poniewaz "pozycja zamowienia" nie moze istniec bez "zamowienia" i na odwrot.
Zamówienie jak najbardziej może istnieć bez pozycji - dopóki ich nie wprowadzisz. Aplikacja powinna pilnować, żeby takie zamówienie miało status, nie pozwalający go zatwierdzić/przekazać do dalszej obsługi.
Dlatego też tylko pole POZZAM_ZAMOW_ID (klucz do zamówienia) robisz NOT NULL, czyli pozycja musi należeć do zamówienia.
>W zwiazku z tym mam pytanie: jak taki zwiazek zrealizowac w RDBMS? Czy >wstawianie danych do tabel powinienem zrealizowac w transakcji?
Zwykle najpierw wprowadza się zamówienie (nagłówek), potem jest commit, a na końcu wprowadza się pozycje (po każdej commit). Dodatkowe walidacje robisz w aplikacji na podstawie statusów zamówienia/jego pozycji. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
bartoo - 02-05-2006 00:39
Sławomir Szyszło <slaszysz@poczta.onet.pl> napisał(a):
> Zamówienie jak najbardziej może istnieć bez pozycji - dopóki ich nie > wprowadzisz. > Aplikacja powinna pilnować, żeby takie zamówienie miało status, nie > pozwalający go zatwierdzić/przekazać do dalszej obsługi.
Zakladajac, ze z aplikacji do bazy beda trafialy tylko te "zamowienia" ktore maja co najmniej 1 "pozycje zamowienia" - czy mozna powiedziec, ze jest to zwiazek 1:n wymagany?
Pozdrawiam bartoo
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 03-05-2006 00:06
On Mon, 1 May 2006 21:47:01 +0000 (UTC), " bartoo" <bartoo3.WYTNIJ@gazeta.pl> wrote:
>Witam >W moim modelu zwiazkow encji wystepuje zwiazek miedzy "pozycja zamowienia" i >"zamowienie". Wydaje mi sie, ze po obu stronach powinien byc wymagany, >poniewaz "pozycja zamowienia" nie moze istniec bez "zamowienia" i na odwrot. >W zwiazku z tym mam pytanie: jak taki zwiazek zrealizowac w RDBMS? Czy >wstawianie danych do tabel powinienem zrealizowac w transakcji?
Raczej musisz założyć, że zamówienie może nie mieć żadnych zamawianych pozycji. Zastanów się w jaki sposób tworzone jest zamówienie. Najpierw masz klienta (zamawiającego) i on skłąda zamówienie. Zamówienie powstaje więc zanim jeszcze pojawi się na nim pierwsza pozycja przez skojarzenie pustego zamówienia z klientem. Potem doipiero dojdą pozycje. -- ___________ (R) /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122 688 ___/ /_ ___ ul. Ludwiki 1 m. 74, 01-226 Warszawa _______/ /_ http://trzypion.oldfield.org.pl/Lem/ ___________/ GG: 3524356
Grzegorz Szyszlo - 03-05-2006 00:07
Adam Płaszczyca wrote:
>>Witam >>W moim modelu zwiazkow encji wystepuje zwiazek miedzy "pozycja zamowienia" i >>"zamowienie". Wydaje mi sie, ze po obu stronach powinien byc wymagany, >>poniewaz "pozycja zamowienia" nie moze istniec bez "zamowienia" i na odwrot. >>W zwiazku z tym mam pytanie: jak taki zwiazek zrealizowac w RDBMS? Czy >>wstawianie danych do tabel powinienem zrealizowac w transakcji? > > > Raczej musisz założyć, że zamówienie może nie mieć żadnych zamawianych > pozycji. Zastanów się w jaki sposób tworzone jest zamówienie. Najpierw > masz klienta (zamawiającego) i on skłąda zamówienie. Zamówienie > powstaje więc zanim jeszcze pojawi się na nim pierwsza pozycja przez > skojarzenie pustego zamówienia z klientem. Potem doipiero dojdą > pozycje.
zawsze mozna machnac jakiegos triggera, a puste zamowienie musi koniecznie miec status 'otwarte'. zamowienie mozna zamknac tylko wtedy, jak ma conajmniej jedna pozycje (drugi trigger, albo i ten sam, zalezy jak sie to opisze).
w definicjach sql chyba nie znajdziesz konstrukcji o ktora pytasz.
znik.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[OT] Praca - wymagania PS, CD, AI, AE, QE, MS, CD, AVI, SWF...
=?iso-8859-2?q?System_szablon=F3w_wg_wymaga=F1_-_porad=BCcie?=
mssql backup
postgresql 8.3 w fazie testowania
Gimp - problem z JPG
Tv LCD zamiast monitora
Edytor Eclipse 3.1.1.
Baza leków
obrobka wielu zdjec w wielu katalogach
[MSSQL] Result to file
zanotowane.pldoc.pisz.plpdf.pisz.plets2.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|