ďťż
 
teoria, klucz obcy jako glowny oraz hibernate ďťż
 
teoria, klucz obcy jako glowny oraz hibernate
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

teoria, klucz obcy jako glowny oraz hibernate



RoB - 21-12-2005 12:14
teoria, klucz obcy jako glowny oraz hibernate
  witam

szukalem w sieci, w ksiazkach i nie potrafie znalezc wyczerpujacych
materialow:

zalozmy, ze mam 2 tabele

tabela_a (idA int PK, ...)
w relacji 1 do N dla tabeli
tabela_b (idB int PK, idA int FK, ...)

czy spotkaliscie sie z tym, zeby w tabeli_b kluczem glownym zrobic oba
klucze, tj. primary key (idB, idA) ? jesli tak, to w jakich sytuacjach sie
tak robi?
jak to ma sie do modelowania obiektowego oraz do hibernate'a ? jakie sa
zalety takiego rozwiazania?

moim zdaniem takie rozwiazanie jest dziwne, bo zalozmy, ze mam N tabel:
tabA (1) do (N) tabB
tabB (1) do (N) tabC
....
to w tabB jeszcze spoko, mam primary key (idB, idA)
w tabC juz jest (idC, idB, idA), gdzie idB, idC sa FK z tabeliB, itd...
nie mowiac o tym, ze w N-tej tabeli mam kilka kluczy, ktore nijak sie maja
do konkretnej tabeli, po prostu schodza jako PK z innych tabel...
prosze o wyczerpujaca pomoc ;-)

pozdrawiam
RoB





RoB - 21-12-2005 12:14

 

> w tabC juz jest (idC, idB, idA), gdzie idB, idC sa FK z tabeliB, itd...
sorki, idB, idA sa FK z tabeliB :)

pozdrawiam
RoB




Noel - 21-12-2005 12:14

  Użytkownik RoB napisał:
> witam
>
> szukalem w sieci, w ksiazkach i nie potrafie znalezc wyczerpujacych
> materialow:
>
> zalozmy, ze mam 2 tabele
>
> tabela_a (idA int PK, ...)
> w relacji 1 do N dla tabeli
> tabela_b (idB int PK, idA int FK, ...)
>
> czy spotkaliscie sie z tym, zeby w tabeli_b kluczem glownym zrobic oba
> klucze, tj. primary key (idB, idA) ? jesli tak, to w jakich sytuacjach sie
> tak robi?

ale to jest w sprzeczności z teorią, a dokładnie z definicją PK w
przypadku tabeli_b. W tabeli może występować jeden PK.

podobne rozwiązania stosować można w przypadku, gdy nie można rozszerzyć
tabeli_a o dodatkowe kolumny. Tworzy się tabele_b w relacji 1:1 z
tabela_a, w tym przypadku PK na tabeli_b byłby idA.

--
Tomek "Noel" B.




Andrzej Dąbrowski - 21-12-2005 12:14

 
>
> czy spotkaliscie sie z tym, zeby w tabeli_b kluczem glownym zrobic oba
> klucze, tj. primary key (idB, idA) ? jesli tak, to w jakich sytuacjach sie
> tak robi?
> jak to ma sie do modelowania obiektowego oraz do hibernate'a ? jakie sa
> zalety takiego rozwiazania?
>
> moim zdaniem takie rozwiazanie jest dziwne, bo zalozmy, ze mam N tabel:
> tabA (1) do (N) tabB
> tabB (1) do (N) tabC

Z tego co pamiętam z teorii wolno stosować klucze wielopolowe (używałem
nawet gdzieś), więc nie ma problemu aby założyć klucz na iluś tam kolumnach.
Co składa się na poszczególne kolumny nie jest istotne.(czy są w nich klucze
obce, czy "zwykłe" pola)
Nie wiem, czy się da założyć jeden klucz jako PRIMARY, a potem drugi
zawierający i pierwszy i inne pole.
Andrzej Dąbrowski





RoB - 21-12-2005 12:14

 
> Nie wiem, czy się da założyć jeden klucz jako PRIMARY, a potem drugi
> zawierający i pierwszy i inne pole.
nieprecyzyjnie sie wyrazilem, chodzilo mi o to, ze tworze dodatkowo kolumne
idB, ale primary key daje na (idB, idA)
gdzie idA jest FK
przepraszam, mea culpa :)
chodzilo mi tylko o przechodzenie FK i wlaczanie go do kolum tworzacych PK w
innej tabeli

pozdrawiam
RoB




Marcin Mańk - 21-12-2005 12:14

  > zalozmy, ze mam 2 tabele
>
> tabela_a (idA int PK, ...)
> w relacji 1 do N dla tabeli
> tabela_b (idB int PK, idA int FK, ...)
>
> czy spotkaliscie sie z tym, zeby w tabeli_b kluczem glownym zrobic oba
> klucze, tj. primary key (idB, idA) ? jesli tak, to w jakich sytuacjach sie
> tak robi?

Jak rozumiem, idB to serial, auto_increment itp.. (auto generowany) ?

wobec tego (idB, idA) nie jest kluczem w rozumieniu teorii baz danych, gdyż
nie jest minimalnym zbiorem identyfikującym. Patrz:
http://galaxy.uci.agh.edu.pl/~chwast...b/dbnormd.html

Pozdrawiam
Marcin Mańk




RoB - 21-12-2005 12:14

 
> Jak rozumiem, idB to serial, auto_increment itp.. (auto generowany) ?
dokladnie sekwencja w postgresie

> wobec tego (idB, idA) nie jest kluczem w rozumieniu teorii baz danych,
gdyż
> nie jest minimalnym zbiorem identyfikującym. Patrz:
> http://galaxy.uci.agh.edu.pl/~chwast...b/dbnormd.html
dzieki za pomoc

pozdrawiam
RoB
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [pgsql] Zmienna jako pole NEW w trigger pl/pgSQL. =?iso-8859-2?q?[Mysql_5=2E0]_Wywo=B3ywanie_procedury_jako_parametr_funkcji?= =?ISO-8859-2?Q?wynik_podzapytania_jako_pojedy=F1cza_warto=B6= E6?= =?iso-8859-2?q?Nazwa_Tabeli_jako_parametr_w_procedurze_sk=B3a dowanej?= Kasa fiskalna OPTIMUS spark 482g - czy moze pracowac jako zwykladrukarka? (niefiskalna) =?iso-8859-2?q?Papier_firmowy_o_nieco_lepszej_jako=B6ci_ni=BF _zwykle?= Re: [MySQL] wyswietlenie NIPu jako ciąg cyfr bez spacji i myślników =?iso-8859-2?q?Jak_u=BFy=E6_tablet_X41_jako_"secondary_screen "_=3F?= katalog lost+found figuruje jako baza danych MySQL
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • misida.pev.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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com