Pouziti autoincrementu

Karel Zak zakkr na zf.jcu.cz
Úterý Červen 17 12:45:56 CEST 2003


On Tue, Jun 17, 2003 at 12:11:17PM +0200, Ing. Pavel Janousek wrote:
> > -----Original Message-----
> > From: Honza Pazdziora [mailto:adelton na informatics.muni.cz] 
> > No, mozna si zkuste projit ten thread, zacalo to tim, ze OP hledal
> > genericke reseni prenositelne mezi uplne vsim, ja jsem namital, ze
> > to neni trivialni, protoze nektere databaze proste autoincrement
> 
> 	Ano a ja si myslim, ze odpoved pomoci JDBC 3.0. metody je
> uspokojive vyrazne vice nez triggery, kdy kazdy dodavatel ma svou

 Jen neni-li to presun problemu z jednoho mene uspokojiveho standardu
 (SQL) do jineho standardu (JDBC) :-)

> 	Otazkou ovsem je, zda-li to aplikace v tom "atomickem" kroku
> vubec potrebuje vedet... - myslim, ze 90% pripadu takovych neni...
> Ostatne, jak dostat tyto informace ci je aspon multiplatformove (mysleno
> ve smyslu SQL databazi) vyuzivat ma kolega Zak velmi bohate zkusenosti
> prave z Mape...

 To nastesti resi Dan Horak :-)

> 	Pokusim se to tedy rici jinak - ve vice jak 90% pripadu je
> jedine vyuziti sekvenci k tomu, ze svazu dve a vice tabulek vazbou.
> Sekvence ci autoinkrement je vhodny prostredek, protoze nam zarucuje
> dostatecnou entropii v bezne pouzitych objemech - ovsem ta unikatnost -
> pozadavek primarniho klice - je velika pouze a jen zpravidla 32-bit uint
> => 2^32-1, coz zase neni az tak moc zaznamu... 

 long long
 
> 	Ja osobne mam take prirozeny odpor k vazani tabulek pres neco
> jineho nez int/serial, ale to z hlediska modelovani neni:
> 
> a) vubec pravda
> b) vubec potreba
> 
> 	V 90% vsech tabulek je primarnim klicem (pokud existuje) int,
> serial apod., ac nema coby udaj zadny vztah k tabulce ani vazbam... -

 Tech 90% neni tak moc pravda. Co jsem videl vetsi DB tak to casto bylo 
 uplne neco jineho nez int. A casto proto, ze je efektivnejsi mit nekde 
 ve sloupci, ktery je cizim klicem nejakou smysluplnejsi informaci nez 
 cislo, ktere je nutne neustale prekladat na tu "smysluplnou informaci" 
 v tabulce kde je to pouzito jako PK.

 Peknym prikladem je tabulka se seznamem jazyku. IMHO je blobost
 pouzivat zde cislo kdyz mohu pouzit treba zkratku (EN/CZ/DE) a i v
 dalsich vazbach bude bez pristupu do tabulky jazyku zrejme o jaky
 jazyk jde.

> samozrejme, ze pres vazbovou tabulku je vhodne modelovat M:N vazby, ale
> rucim Vam, ze temer vsechny M:1 nebo 1:N vazby nemusime tvorit pomoci
> toho, co tady resime, ale proste jako primarni klic zvolime neco
> vhodnejsiho - nehlede k tomu, ze primarni klic muze byt slozeny a presto
> ho lze z hlediska modelovani vyuzivat pro vazani s jinymi entitami...

 Nejsem si jist jak moc ciste by slozeny PK prosel pouckami o modelovani
 databazi :-)

    Karel

-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/


Další informace o konferenci Test