ďťż
 
=?iso-8859-2?B?VGFiZWxhILOxY3qxY2EgaSBJRC4=?= ďťż
 
=?iso-8859-2?B?VGFiZWxhILOxY3qxY2EgaSBJRC4=?=
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

=?iso-8859-2?B?VGFiZWxhILOxY3qxY2EgaSBJRC4=?=



Peri - 15-01-2006 19:17
=?iso-8859-2?B?VGFiZWxhILOxY3qxY2EgaSBJRC4=?=
 
Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel laczonych to
jakakolwiek teoria mowi, ze powinnismy do takiej tabeli dodac jeszcze
trzecia kolumne, ktora bylaby identyfikatorem danego wiersza w niej? (np
autoincrement). Bo z kumplem o tym ostro dyskutowalismy i sie zastanawiam
kto ma rację.

--
Peri





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 16-01-2006 23:25

  Peri wrote:
>
> Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel laczonych
> to jakakolwiek teoria mowi, ze powinnismy do takiej tabeli dodac
> jeszcze trzecia kolumne, ktora bylaby identyfikatorem danego wiersza w
> niej? (np autoincrement). Bo z kumplem o tym ostro dyskutowalismy i sie
> zastanawiam kto ma rację.

Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do każdej tabeli
kolumny id o automatycznie nadawanej wartości jest dobrym zwyczajem!

--
P.M.




Peri - 16-01-2006 23:25

  On Fri, 13 Jan 2006 15:07:25 +0100, Paweł Matejski
<madej@spam.madej.pl.eu.org> wrote:

> Peri wrote:
>> Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel laczonych
>> to jakakolwiek teoria mowi, ze powinnismy do takiej tabeli dodac
>> jeszcze trzecia kolumne, ktora bylaby identyfikatorem danego wiersza w
>> niej? (np autoincrement). Bo z kumplem o tym ostro dyskutowalismy i
>> sie zastanawiam kto ma rację.
>
> Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do każdej
> tabeli kolumny id o automatycznie nadawanej wartości jest dobrym
> zwyczajem!
>

Ale dlaczego?

--
Peri




Azja - 16-01-2006 23:25

  Peri wrote on 2006-01-13 15:10:

>> Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do
>> każdej tabeli kolumny id o automatycznie nadawanej wartości jest
>> dobrym zwyczajem!
> Ale dlaczego?

Na wszelki wypadek. I porzundek musi być :) Nigdy nie wiesz, czy to
się nie przyda. No i identyfikacja rekordu jest wówczas jednoznaczna,
unikasz sytuacji z pojechaniem "ups, chyba za dużo skasowałem, tu były
jeszcze inne rekordy spełniające warunek na dwóch obcych kluczach".

--
Azja

50% procent badanych nie zdaje sobie sprawy,
że stanowi połowę społeczeństwa





Artur Muszynski - 16-01-2006 23:25

 
"Azja" <spamerom.mowimy.stanowcze.nie.michal.kulach@wp.pl > wrote in message
news:dq8g7u$28sc$1@news2.ipartners.pl...
> Peri wrote on 2006-01-13 15:10:
>
>>> Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do każdej
>>> tabeli kolumny id o automatycznie nadawanej wartości jest dobrym
>>> zwyczajem!
>> Ale dlaczego?
>
> Na wszelki wypadek. I porzundek musi być :) Nigdy nie wiesz, czy to się
> nie przyda. No i identyfikacja rekordu jest wówczas jednoznaczna, unikasz
> sytuacji z pojechaniem "ups, chyba za dużo skasowałem, tu były jeszcze
> inne rekordy spełniające warunek na dwóch obcych kluczach".

Dla mnie dodawnie kolumny, która nie ma żadnej interpretacji i do niczego
nie służy nie wprowadza porządku, tylko bałagan, w dodatku marnujesz pamięć,
tworzysz zbędny indeks klustrowany dla id, który spowalnia. Dla mnie to jest
idiotyczny nawyk rodem z Accessa, który pchał wszędzie te swoje autonumbery,
przez co dla niektórych klucz podstawowy wielokolumnowy to czarna magia.

artur

>
> --
> Azja
>
> 50% procent badanych nie zdaje sobie sprawy,
> że stanowi połowę społeczeństwa




Grzesiek G. - 17-01-2006 10:52

  Artur Muszynski napisał(a):
> "Azja" <spamerom.mowimy.stanowcze.nie.michal.kulach@wp.pl > wrote in message
> news:dq8g7u$28sc$1@news2.ipartners.pl...
>
>> Peri wrote on 2006-01-13 15:10:
>>
>>
>>>>Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do każdej
>>>>tabeli kolumny id o automatycznie nadawanej wartości jest dobrym
>>>>zwyczajem!
>>>
>>>Ale dlaczego?
>>
>> Na wszelki wypadek. I porzundek musi być :) Nigdy nie wiesz, czy to się
>>nie przyda. No i identyfikacja rekordu jest wówczas jednoznaczna, unikasz
>>sytuacji z pojechaniem "ups, chyba za dużo skasowałem, tu były jeszcze
>>inne rekordy spełniające warunek na dwóch obcych kluczach".
>
>
> Dla mnie dodawnie kolumny, która nie ma żadnej interpretacji i do niczego
> nie służy nie wprowadza porządku, tylko bałagan, w dodatku marnujesz pamięć,
> tworzysz zbędny indeks klustrowany dla id, który spowalnia. Dla mnie to jest
> idiotyczny nawyk rodem z Accessa, który pchał wszędzie te swoje autonumbery,
> przez co dla niektórych klucz podstawowy wielokolumnowy to czarna magia.

Jeżeli do tej tabeli (z kluczem dwukolumnowym) będą referencje, to może
to mieć jeszcze jakiś sens typu oszczędność miejsca w tabelach
podrzędnych, zwiększenie szybkości przeszukiwania indeksu przy łączeniu
z tabelą podrzędną. Ale twierdzenie, że zawsze należy tworzyć
jednokolumnowy klucz typu int autoincrement jest również dla mnie
bzdurą. Szczególnie wtedy, gdy tabela służyć tylko i wyłącznie do
realizacji relacji wiele do wielu.

Pozdrawiam

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!




Lucyna Witkowska - 17-01-2006 10:52

  Peri <email@server.net> napisał:
> Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel laczonych to
> jakakolwiek teoria mowi, ze powinnismy do takiej tabeli dodac jeszcze
> trzecia kolumne, ktora bylaby identyfikatorem danego wiersza w niej? (np
> autoincrement). Bo z kumplem o tym ostro dyskutowalismy i sie zastanawiam
> kto ma rację.

Moze pogodzi was Designer ;-)
Kluczem glownym takiej tabeli jest u niego klucz zlozony z kluczy
obcych.

Pozdrowienia,
LW




Artur S. - 19-01-2006 09:32

  Peri napisał(a):
> On Fri, 13 Jan 2006 15:07:25 +0100, Paweł Matejski
> <madej@spam.madej.pl.eu.org> wrote:
>
>> Peri wrote:
>>
>>> Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel
>>> laczonych to jakakolwiek teoria mowi, ze powinnismy do takiej
>>> tabeli dodac jeszcze trzecia kolumne, ktora bylaby identyfikatorem
>>> danego wiersza w niej? (np autoincrement). Bo z kumplem o tym ostro
>>> dyskutowalismy i sie zastanawiam kto ma rację.
>>
>>
>> Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do
>> każdej tabeli kolumny id o automatycznie nadawanej wartości jest
>> dobrym zwyczajem!
>>
>
> Ale dlaczego?
>
Przyjąłem, że tak robię, bo każda tabela (albo prawie każda), ma u mnie
w programie odpowiadającą jej klasę w której są metody add/update/delete
itp. Ale te metody są dziedziczone i łatwiej jest jak w każdej tabeli
jest pole o tej samej nazwie, będące kluczem.
Ale to nie udowadnia, że trzeba tak robić zawsze.

Pozdrawiam
Artur S.




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 19-01-2006 09:33

  Artur S. wrote:
> Peri napisał(a):
>
>> On Fri, 13 Jan 2006 15:07:25 +0100, Paweł Matejski
>> <madej@spam.madej.pl.eu.org> wrote:
>>
>>> Peri wrote:
>>>
>>>> Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel
>>>> laczonych to jakakolwiek teoria mowi, ze powinnismy do takiej
>>>> tabeli dodac jeszcze trzecia kolumne, ktora bylaby identyfikatorem
>>>> danego wiersza w niej? (np autoincrement). Bo z kumplem o tym
>>>> ostro dyskutowalismy i sie zastanawiam kto ma rację.
>>>
>>>
>>>
>>> Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do
>>> każdej tabeli kolumny id o automatycznie nadawanej wartości jest
>>> dobrym zwyczajem!
>>>
>>
>> Ale dlaczego?
>>
> Przyjąłem, że tak robię, bo każda tabela (albo prawie każda), ma u mnie
> w programie odpowiadającą jej klasę w której są metody add/update/delete
> itp. Ale te metody są dziedziczone i łatwiej jest jak w każdej tabeli
> jest pole o tej samej nazwie, będące kluczem.
> Ale to nie udowadnia, że trzeba tak robić zawsze.

Ale mówicie o bazie, której rozwój się skończył. Oddajecie projekt klientowi i
zapominacie. I ok. wtedy są tabele, gdzie id nie jest potrzebne. Ale to jest
ideał, który żadko się zdarza. Nigdy nie wiadomo, kiedy projekt będzie
kontynuowany, a kiedy nie (przynajmniej w moich są takie statystyki).
To tak jak w telewizorze - telewizor jest do tego, żeby oglądać w nim filmy,
programy. W związku z tym coś takiego jak uchwyt do noszenie jest zupełnie
niepotrzebne. A jednak, trzeba ten telewizor przynieść. A potem nie wiadomo
kiedy zachce nam się przemeblować, albo przeprowadzić i wtedy podziwiamy
genialność projektanta, który te ucwyty uwzględnił w projekcie telewizora.
I ja tak traktuje id w każdej tabeli.
A drugi argument, to jest oszczędność czasu - po prostu zaczynając każdą nową
tabele zaczynam ją od stworzenia kolumny 'id serial' i nie trace czasu na
zastanawianie się, czy ta kolumna jest mi potrzebna czy nie. Do tego jakby się
okazała niepotrzebna, to łatwo jest ją skasować.

--
P.M.




Grzesiek G. - 19-01-2006 09:33

  Paweł Matejski napisał(a):
> Artur S. wrote:
>
>> Peri napisał(a):
>>
>>> On Fri, 13 Jan 2006 15:07:25 +0100, Paweł Matejski
>>> <madej@spam.madej.pl.eu.org> wrote:
>>>
>>>> Peri wrote:
>>>>
>>>>> Czy jezeli tabela laczaca ma dwie kolumny z kluczami z tabel
>>>>> laczonych to jakakolwiek teoria mowi, ze powinnismy do takiej
>>>>> tabeli dodac jeszcze trzecia kolumne, ktora bylaby
>>>>> identyfikatorem danego wiersza w niej? (np autoincrement). Bo z
>>>>> kumplem o tym ostro dyskutowalismy i sie zastanawiam kto ma rację.
>>>>
>>>>
>>>>
>>>>
>>>> Teoria chyba żadna, ale z mojej praktyki wynika, że dodawanie do
>>>> każdej tabeli kolumny id o automatycznie nadawanej wartości jest
>>>> dobrym zwyczajem!
>>>>
>>>
>>> Ale dlaczego?
>>>
>> Przyjąłem, że tak robię, bo każda tabela (albo prawie każda), ma u
>> mnie w programie odpowiadającą jej klasę w której są metody
>> add/update/delete itp. Ale te metody są dziedziczone i łatwiej jest
>> jak w każdej tabeli jest pole o tej samej nazwie, będące kluczem.
>> Ale to nie udowadnia, że trzeba tak robić zawsze.
>

Przedstawiłeś tu pewien argument, który mówi, że trzeba dodać id z
powodu niedoskonałości programu klienckiego.

Przyjrzyj się OR-mapperom na rynku (polecam Hibernate-NHibernate). Tam
takie założenie (że każda tabela ma jednokolumnowy klucz) jest zbędne. A
tabela łącząca (realizująca relację wiele do wielu) ma typowo 2 pola, bo
więcej nie jest potrzebnych.

>
> Ale mówicie o bazie, której rozwój się skończył. Oddajecie projekt
> klientowi i zapominacie. I ok. wtedy są tabele, gdzie id nie jest
> potrzebne. Ale to jest ideał, który żadko się zdarza. Nigdy nie wiadomo,
> kiedy projekt będzie kontynuowany, a kiedy nie (przynajmniej w moich są
> takie statystyki).

W którym miejscu tak mówimy? My pytamy się o argumenty.

> To tak jak w telewizorze - telewizor jest do tego, żeby oglądać w nim
> filmy, programy. W związku z tym coś takiego jak uchwyt do noszenie jest
> zupełnie niepotrzebne. A jednak, trzeba ten telewizor przynieść. A potem
> nie wiadomo kiedy zachce nam się przemeblować, albo przeprowadzić i
> wtedy podziwiamy genialność projektanta, który te ucwyty uwzględnił w
> projekcie telewizora.
> I ja tak traktuje id w każdej tabeli.

O to jest jakiś argument - dodajemy zawsze jednokolumnowy id bo może się
przyda. Ja natomiast dla tabel łączących nie dodaję, bo wiem, że na
pewno się nie przyda (nie rób z noszenia telewizora większego problemu,
niż jest praktycznie :-)).

> A drugi argument, to jest oszczędność czasu - po prostu zaczynając każdą
> nową tabele zaczynam ją od stworzenia kolumny 'id serial' i nie trace
> czasu na zastanawianie się, czy ta kolumna jest mi potrzebna czy nie. Do
> tego jakby się okazała niepotrzebna, to łatwo jest ją skasować.
>

A ja dla tabel łączących nie daję jednokolumnowego id i też nie tracę
czasu na myślenie czy id serial jest mi potrzebne.

Pozdrawiam

--
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 =?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?= =?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?= =?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?= =?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ponland.htw.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