🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82553

Re: Firebird, klucz główny i obcy

#82553
From: wloochacz
Date: Mon, 17 Aug 2015 17:23
35 lines
2597 bytes
W dniu 2015-08-16 o 09:49, Borneq pisze:
> Zaczynam pracę z bazami danych Firebirda. Jak na razie mam problem, bo
> pole typu VARCHAR nie może być kluczem głównym, np. ISBN książki.
Co?!
Od kiedy to varchar nie może być PK tabeli?
Albo potem wchodzisz w zakładkę, na edytorze danej tabeli, "Constraints" 
i dalej "1.Primary Key"

> Mam pytania: jak zrobić klucz główny składający się z kilku kolumn w
> IBExpercie?
Klikasz w kolumnę z nazwą PK obok kolumny, która ma wchodzić w skład PK.

> To znaczy jedna i druga kolumna może się powtarzać, ale ich
> konkatenacja nie, jest unikalna i może być kluczem głównym.
To jest praktycznie zawsze bardzo zły pomysł.
To, czyli PK złożony z wielu pól.
Każdy FK musi mieć powtórzone wartości w pozostałych tabelach.
Zawsze trzeba te wartości uzupełniać.
Żeby jednoznacznie zidentyfikować wiersz w takiej tabeli, trzeba podać 
wszystkie wartości.
Jest zdecydowanie więcej argumentów przeciw, niż za.

Zdecydowanie lepiej założyć tzw. klucz sztuczny.
A jeśli naprawdę zależy Ci na unikalności konkretnych złożeń wielu 
kolumn, to załóż sobie klucz unikalny - ale nie główny.

> A co z foreign key? Gdy mamy relację one-to-many to po której stronie
> (one czy many?) tworzymy foreign key?
Many.

PS.
Panie, to są absolutne podstawy. Szkoda takich pytań na grupę...

-- 
wloochacz
Technical Details
Message-ID: <55d218ae$0$4766$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!feed.xsnews.nl!fbe001.ams.xsnews.nl!ecngs!feeder.ecngs.de!81.171.118.64.MISMATCH!peer04.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <mqpf9j$e91$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!feed.xsnews.nl!fbe001.ams.xsnews.nl!ecngs!feeder.ecngs.de!81.171.118.64.MISMATCH!peer04.fr7!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Firebird, klucz główny i obcy
References: <mqpf9j$e91$1@node2.news.atman.pl>
From: wloochacz <wloochacz@no.spam.gmail.com>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Date: Mon, 17 Aug 2015 19:23:55 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0
MIME-Version: 1.0
In-Reply-To: <mqpf9j$e91$1@node2.news.atman.pl>
Lines: 35
Message-ID: <55d218ae$0$4766$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.23.144.64
X-Trace: 1439832238 unt-rea-a-01.news.neostrada.pl 4766 83.23.144.64:2375
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 2308
X-Received-Body-CRC: 2980897968
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit