[ endre85 @ 01.11.2011. 20:43 ] @
Pozdrav.

Imam sledece tabele:


Korisnik bira odredjeni red u "tabeli stanja" i klikne na "Dodaj u Scenario". Tom prilikom upisuje (ili iz liste bira vec postojece) ime scenarija i odredjuje brzinu izvodjenja.
Prozor koji iskace klikom na dodaj u scenario:


Ime scenarija se upisuje u tabelu Spisak svih scenarija ako vec ne postoji u doticnoj tabeli.

Primary key selektovanog reda iz tabele stanja se kopira u FK_Stanja tabele Definicije Scenarija.

Primary key reda u Spisak svih scenarija koje sadrzi ime scenarija sa koji se trenutno barata kopira u FK_Spisak_Svih_Scenarija tabele Definicije Scenarija.

Mozda cu morati da omogucim i da korisnik bira i pokret i tip iz istoimenih tabela. Za sada mi te tabele ne trebaju.


kreiranje tabela:
http://pastebin.com/w2GGW2CT

Moje pitanje:
Kako da upisem strane kljuceve, da updejtujem odgovarajuci red u tabeli Definicije scenarija?


Moji pokusaji resenja:
http://pastebin.com/GfZdj1tC

Ne vidim jednostavno resenje. Samo da eventualno vrsim neke pretrage, pa kopiram u neke varijable i tako upisujem u odg. tabelu.

Uzgred kako se kopira sadrzaj neke celije u neku varijablu? Ne iz datagridview-a, vec iz mysql tabele.

Jel mi ovo treba za user defined varijable?

[Ovu poruku je menjao endre85 dana 01.11.2011. u 22:06 GMT+1]

EDIT: Malopre mi je palo napamet da probam nesto sa DataTable tako da sam resio svoj problem. Ako je potrebno moze lock ili garbage.

[Ovu poruku je menjao endre85 dana 02.11.2011. u 01:38 GMT+1]
[ bogdan.kecman @ 02.11.2011. 14:37 ] @
strasno je nepregledno extrahovati korisne podatke iz sume c# koda ... zar nisi mogao da stavis samo create table info za svaku tabelu?

koliko ja vidim ti nisi uopste pravio strane kljuceve i constraint-e, no vrlo moguce da sam nesto prevideo od sume c# koda, dakle koliko sam ja na brzinu preleteo kroz tvoj kod, ti si to napravio pogresno. Uzmi mysql workbench i u njemu izdizajniraj tu bazu, povezi te tabele i napravi constraint-e koji ti trebaju. Onda iz njega exportuj taj SQL koji ti treba za kreiranje istih ...
[ endre85 @ 02.11.2011. 16:06 ] @
Citat:
bogdan.kecman: strasno je nepregledno extrahovati korisne podatke iz sume c# koda ... zar nisi mogao da stavis samo create table info za svaku tabelu?


Pa postavio sam samo deo vezan za pravljenje tabela: http://pastebin.com/w2GGW2CT

Ne znam kako to mogu preglednije postaviti.
Jedino ovaj drugi deo gde su neki moji pokusaji moze da zbunjuje. Ali ni to mi ne izgleda tako strasno.

Citat:
bogdan.kecman: koliko ja vidim ti nisi uopste pravio strane kljuceve i constraint-e, no vrlo moguce da sam nesto prevideo od sume c# koda, dakle koliko sam ja na brzinu preleteo kroz tvoj kod, ti si to napravio pogresno. Uzmi mysql workbench i u njemu izdizajniraj tu bazu, povezi te tabele i napravi constraint-e koji ti trebaju. Onda iz njega exportuj taj SQL koji ti treba za kreiranje istih ...


Zasto mislis da su constraint-i lose definisani? Kako treba?
evo samo ta te tabele:


Po mogucstvu uradio bih u c sharpu.


[Ovu poruku je menjao endre85 dana 02.11.2011. u 17:26 GMT+1]
[ bogdan.kecman @ 02.11.2011. 21:10 ] @
nisi skontao sta sam napisao, nepregledno je vaditi sql iz c# koda, poenta je da ti spremis uvek sql kod koji moze da se copy/paste u mysql klijent i da to izkreira te tabele, ili da se taj kod ucita u workbench ili neki drugi ERD tool, no nije bitno, kazes da si resio problem ..

Citat:
endre85:
Po mogucstvu uradio bih u c sharpu.


aplikaciju pisi u cemu oces, ali modeliranje baze uradi u alatu za modeliranje baze, c# to nije, niti bilo sta iz visual studia sluzi tome. mozes ti da modeliras bazu i tekst editoru ali to nije pametno
[ endre85 @ 02.11.2011. 21:37 ] @
Aha, tako razumem sumu koda.

Imam instaliran workbench ali ga generalno ne koristim. U sustini i SQL i C# koristim prvi put (ono sto sam pre nesto radio sa sql je smesno malo pa ne racunam).

Jel imas "pri ruci" neke dobre tutorijale za modeliranje baze u workbenchu kao i opste guidelines/tutoriale za dizajniranje baza?

I da li mozes opisati kako to otp. ide? U MySQL WB definisem tabele, veze izmedju i njih, i sta jos treba, posle samo povezujem sa datagridview ili datatable u VS?

Jesam resio problem, tako sto nakon unete vrednosti u tabelu sa primarnim kljucem, pomocu datatable pretrazujem tu tabelu za tom vrednoscu (mogu se javljati samo jednom) i tako nalazim koji mu je odg PK i tu vrednost kopiram na odg mesto u tabelu koja prikazuje strane kljuceve. (cini mi se da sam jutros video na netu hint kako da to izvedem i bez datatable-a, sad cu da vidim na laptopu valjda sam to i iskoristio)

[ bogdan.kecman @ 02.11.2011. 23:31 ] @
procedura:
1. dizajniras bazu u workbenchu
2. kreiras tu bazu na mysql serveru
3. napises program u cemu oces (C# je ok) koji onda operise tim tabelema tj podacima u njima

nema potrebe da svaki put kada startujes program kreiras tabele .. to se radi samo jednom, program obicno ocekuje da tabele postoje.

tutorijali:
kod mene na blogu imas sa onom drugom blogu (ne mysql nego http://elco.crsndoo.com ) imas moj "favorites" bar sa amazona i tu imas nekoliko odlicnih knjiga za mysql.
sto se tice nekih online tutorijala imas generalni tutorijal vezano za normalizaciju db modela kod mene na mysql blogu: http://www.mysql.rs/2009/05/mo...e-baze-podataka-normalizacija/
imas online dosta raznih uputstava za to kako se modelira baza
workbench ima help vezano za to kako se koristi a imas i ponesto online:
http://dev.mysql.com/doc/workbench/en/wb-tutorials.html
http://dev.mysql.com/doc/workb...tutorial-creating-a-model.html
http://dev.mysql.com/doc/workbench/en/wb-basic-add-table.html
http://dev.mysql.com/doc/workbench/en/wb-basic-foreign-key.html
http://www.packtpub.com/articl...base-design-in-mysql-workbench

ima i nekih ok manuala za generalno modeliranje
http://www.agiledata.org/essays/dataModeling101.html
http://en.wikipedia.org/wiki/Database_model
http://www.databaseanswers.org/tutorial4_data_modelling/index.htm

prosetaj se do PMF-a ima ok knjiga iz baza podataka tamo, nije idealna ali moze da prodje, procitaj :D

Hoces "dobru" knjigu, najbolja je: http://www.amazon.com/Introduc...&qid=1320276424&sr=8-7

e sada, ovo sto ti pitas u prethodnom postu nema nikakve veze sa bazama podataka, tebe zanima kako da komponente iz visual studia rade ono sto ti hoces, za to je najbolje da potrazis savet na forumu koji je zaduzen za C# (ima ga ovde na es-u ako se dobro secam). DB model napravis u WB-u. Za program - kao sto rekoh, pisi u cemu oces, ali ako ga pises u .not tehnologiji moras da uvatis pravo mesto i pitas ljude koji svakodnevno moraju da rade sa tom .not tehnologijom, npr ovde:
http://www.elitesecurity.org/f61
http://www.elitesecurity.org/f249
[ endre85 @ 02.11.2011. 23:48 ] @
Ok, hvala.

Citat:
bogdan.kecman
nema potrebe da svaki put kada startujes program kreiras tabele .. to se radi samo jednom, program obicno ocekuje da tabele postoje.


Ne kreiram tabele svaki put. Kreiraju se samo kada se program prvi put pokrene na nekom racunaru.

Citat:
bogdan.kecman
e sada, ovo sto ti pitas u prethodnom postu nema nikakve veze sa bazama podataka, tebe zanima kako da komponente iz visual studia rade ono sto ti hoces, za to je najbolje da potrazis savet na forumu koji je zaduzen za C# (ima ga ovde na es-u ako se dobro secam). DB model napravis u WB-u. Za program - kao sto rekoh, pisi u cemu oces, ali ako ga pises u .not tehnologiji moras da uvatis pravo mesto i pitas ljude koji svakodnevno moraju da rade sa tom .not tehnologijom, npr ovde:
http://www.elitesecurity.org/f61
http://www.elitesecurity.org/f249


Pitao sam ovde, jer sam bio ubedjen da je resenje SQL. Mislio sam da postoji neka SQL naredba koja ce vrsiti moj posao, pa sam i pokusavao i kopao po netu u tom smeru. Osim toga su mi padala na pamet neka skroz zaobilazna resenje koja bi spadala u domen vrlo lose programerske prakse. Vec sam bio odustao, gledao neki film, kada sam se setio da probam jos nesto. Krenuo sam u drugi smer i resio moj problem.