zubrienka181
28.12.10,10:55
Prosím viete mi niekto poradiť ako pracovať s databázou vytvorenou pomocou SQL, poprípade, kde by som našla nejaký dobrý a hlavne zrozumiteľný návod aj pre začiatočníkov? Dostala som to ako projekt v škole a nemôžem sa pohnúť ďalej cez kľúče. Primárny by sa ešte dal, ale pri cudzom sa musí zhodovať názov s primárnym? Ja mám napr. tabuľku "programy" a v nej je položka "obsah programu". Potom mám tabuľku "obsah programu", v ktorej sú "cop" a "pripravky". Typ premennej "obsah programu" v tabuľke "programy" sa zhoduje s typom premennej "cop" v tabuľke "obsah programu". A tu nastáva problém. "Cop" je primárny kľúč v tabuľke "obsah programu" a následne cudzí kľúč v tabuľke "programy", ale tam je názov "obsah programu". Prosím poraďte mi ako to spraviť. Ďakujem za radu.
sthruska
28.12.10,10:24
SQL nie je databáza, ale jazyk.
Nepoužívaj pri názvoch diakritiku ani medzery. Nauč sa terminológiu.
Typ premennej "obsah programu" v tabuľke "programy" má byť
Typ poľa "obsah programu"...
Názvy môžu byť rovnaké. Osobne ich rozlišujem PK - primary key, FK - foreign key apod.
Z Tvojho popisu neviem o čo sa jedná. Ako máš definovanú väzbu medzi tabuľkami?
zubrienka181
28.12.10,11:15
Ja som na to úplný nováčik a antitalent. Diakritiku a ani medzery nepoužívam, to iba tu, aby sa vedelo o čo ide. Asi som to aj tak zle popísala.
Ja mám dve tabuľky. Hlavná je "programy", v ktorej sa nachádza "obsah programu" a druhá je "obsah programu", v ktorej sú "cop" a "prípravky". "Obsah programu" z prvej tabuľky a "cop" z druhej sú rovnaké INT (3). Tabuľka "programy" je nadradená tabuľke "obsah programu". Neviem, či môžem dať v tabuľke "obsah programu" "cop" ako primárny kľúč a v tabuľke "programy" "obsah programu" ako cudzí kľúč? Či to môže byť, keď názvy sa nezhodujú. Neviem to inak popísať, lebo s tým nepracujem. Mám z toho guláš a skúšku by som chcela spraviť. Ďakujem za ochotu pomôcť
darkangel
28.12.10,11:33
pouzivas MSSQL ? MySQL ? Access ? vies mi exportnut scipt tabuliek ? viem ti s tym viacmenej pomoct.

Primarny kluc - > mal by byt viacmenej jedinecny (cize sa neopakuje, sice moze sa nastavit duplicity ale to urcite nebude predmetom tvojej skusky).

co sa tyka vazieb mediz tabulkami .. viacmenej zakladna podmnienka je datovy typ.. (na nazve nezalezi).

este jedna vec.. tie tabulky si pisala ty alebo si ich uz mala definovane ?

skus poslat ten sql script z tabuliek .. z toho urcite viac pochopim co potrebujes
Zoltan Miklos
30.12.10,10:45
v podstate to mas v poriadku, ak si sama zadefinujes, ze [obsah programu].[programy] je tvoj FK ukazujuci na [cop].[obsah programu] a datove typy sa zhoduju fungovat ti to bude, aj ked to vyzera chaoticky..
navrhujem nasledovny "naming convention"

ked vytvaram databazu tak PK nazyvam vzdy vo formate pk__id
a FK formate fk__id

v tvojom pripade by to vyzeralo takto:

programy:
pk_programy_id
fk_obsah_programu_id
... dalsie stlpce ...


obsah_programu:
pk_obsah_programu_id
pripravky
..dalsie stlpce..

v tomto pripade jasne vidis, ze fk_obsah_programu_id ukazuje na pk_obsah_programu_id.

snaz sa neminimalizovat nazvy stlpcov na nic nehovoriace skratky ako 'cop', lebo teraz ti to moze dat zmysel, ale o mesiac ked sa ku kodu vratis, nebudes tomu rozumiet.

mne sa osvedcuju dvoj- maximalne trojslovne oznacenia stlpcov.

vsimni si tiez, ze medzer medzi slovami je dobre vyplnat podtrznikom a ze sa nepise diakritika

good luck :-)
darkangel
31.12.10,09:39
s tym pomenovanim suhlasim .. akurat zoltan.. ten tvoj navrh je pre 1:1 typ.
cize jeden program max 1 obsah.
skor by som to riesil 1:n...

Programy:
ID (Primary key)
Nazov_Programu
dalsie stlpce

Obsah:
ID (Primary key)
ProgramID (FK)
Pripravky
Dalsie Stplce

Foreign Key (FK) bude relacia medzi ProgramID a Programy[ID].

tym padom mozem mat kazdy program aj viacero obsahov (alebo viacriadkov a pod).

a ked uz by sa jednalo u uplnu optimalizaciu tak obsah by mal primary key nonclucstered a clustrovany index by sa dal na ProgramID. Ale predpokladam ze to uz by bolo moc aj na skusajuceho ;):):)
zubrienka181
11.01.11,18:57
Musím Vám poďakovať, že ste sa do témy zapojili a snažili sa mi poradiť. Vážim si to. Dlhšie som tu nebola, ale niektoré veci som už medzitým na projekte spravila. Ešte by som potrebovala poradiť ako mám do písomnej časti spraviť normalizáciu. Viem že 3NF je už výsledné to, čo mám nahraté v databáze, ale ako vykúzliť to predtým? Ďakujem za odpovede.