-
Data: 2009-12-17 19:40:29
Temat: Re: Pytanie o klucze baz
Od: wloochacz <w...@n...dgbit.spameromnie.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Mateusz Loskot pisze:
> "Jacek Czerwinski" <...@...z.pl> wrote in message
> news:hgdlor$ndl$1@news.onet.pl...
>> Krzysztof Warunek pisze:
>>> W dniu 2009-12-17 13:56, Jacek Czerwinski pisze:
>>
>>>> Praktyka, na czele z MS-SQL z którym ostatnio często się spotykam,
>>>> niemal wymusza pojedynczy klucz pierwotny (automatycznie wypełniany,
>>>> liczbowy i niezmienny).
>>> co w tym złego?
>>
>> Raczej dobrego, dość to pozytywnie odbieram.
>
> Widziałem "standardy kodowania" dla baz, gdzie
> automagicznie generowany klucz jest wręcz zalecany
> i oczywiście niezmienny w trakcie jakichkolwiek operacji typu UPDATE
>
> Istnieją sytuacje w których klucz główny (primary key) w ogóle nie jest
> ustalany a istnieje kilka kombinacji (candidate key) pozwalające
> na unikalne ustalenie rekordu, zależnie od potrzeb i zapytań.
To nie jest dobry pomysł - nigdy; jak do takiej tabeli dodać relację np.
jeden-do-wielu? Za pomoca triggera? Fuj - jeszcze trzeba by dodać indeks
dodac na tej nowej tabelce, bo inaczej wyszukiwanie będzie się ślimaczyć...
Poza tym pytaczowi nie chodziło o candidate key, tylko o natural primary
key - imo.
Generalnie - cały temat rozbija się o dwie kwestie:
1) klucz naturalny jest wygodny, ponieważ nie trzeba łączyć tabel, żeby
user widział co to za id jest. On to po prostu widzi. Wada to taka, że
to user powinien taki klucz zakładać - inaczej nie ma sensu, bo
dochodzimy do generowanego automagicznie (identity, guid)
2) klucz złożony, czasem wydaje się dobrym pomysłem - do czasu jeśli nie
zechcemy dodać podrzędnej tabeli i zdefiniować klucza obcego - trzeba te
wszystkie wartości z tabli nadrzędnej pieczłowicie przepisać do
podrzędnej. A na dodatek informacja jest nadmiarowa.
IMO zamiast podstawowego klucza złożonego, lepiej zrobić sztyczny PK +
ograniczenie typu unique.
Co do kluczy naturalnych - czasem, ale to naprawdę czasami - jest
przydatny i to naprawdę zależy od tego co to za aplikacja i jakiego
rodzaju dane obrabia.
Znam pewien ERP, gdzie PK (i ID w app) jest tylko i wyłącznie kluczem
naturalnym - user musi wszystko wpisać z łapy (id towaru, id klienta, id
magazynu itd.). I to działa i nawet mi to nie przeszkadza :)
--
wloochacz
Następne wpisy z tego wątku
- 17.12.09 20:10 HillBilly
- 17.12.09 21:38 Bronek Kozicki
- 18.12.09 08:03 wloochacz
- 18.12.09 09:42 Mateusz Ludwin
- 25.12.09 18:55 gregorius
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-12 Warszawa => PC Hardware Expert / Specjalista PC <=
- 2025-07-12 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2025-07-12 Warszawa => Administrator IT <=
- 2025-07-12 Warszawa => IT Administrator <=
- 2025-07-12 Warszawa => Asystent/tka ds. Administracji <=
- 2025-07-12 Warszawa => Specjalista/stka ds. Organizacji <=
- 2025-07-12 Warszawa => MENA New Business Manager <=
- 2025-07-12 Gdynia => Controlling systems Consultant <=
- 2025-07-12 Warszawa => Developer Microsoft Dynamics 365 Finance & Operations (D36
- 2025-07-12 Warszawa => Programista Microsoft Dynamics 365 Finance & Operations (D
- 2025-07-12 Warszawa => Dyrektor IT <=
- 2025-07-12 Warszawa => IT Director <=
- 2025-07-12 Czy wypowiedź Kaczyńskiego o Braunie jest skarżalna? ["działa z OBCEJ inspiracji"]
- 2025-07-11 Rejestrator temperatur - termopara, siec
- 2025-07-11 DPD, przeniesienie numerów z a2mobile i z Orange