Předmět Autor Datum
Co znamená, že si vytváříš databázi? Vytváříš si přímo tabulky? Nebo třeba používáš CodeFirst v Enti…
Wikan 05.01.2017 14:10
Wikan
Ano, vytvářím si tabulky a pak tu databázi chci připojit k asp .net aplikaci a pomocí EF...no s tím…
Dupla 05.01.2017 14:25
Dupla
Tabulky vytvaris primo v kodu nebo v nejakem DB navrhari? Vazby mezi tabulkami se vytvari pomoci ref…
Jan Fiala 05.01.2017 14:30
Jan Fiala
Ono je to v jednom okně jak kód, tak tabulka.
Dupla 05.01.2017 14:41
Dupla
Tak stačí správně nastavit cizí klíče a je to.
Wikan 05.01.2017 14:54
Wikan
No, ta vazba m:n se jen cizím klíčem nevyřeší ... je nutno použít "pomocnou" tabulku.
dsa 05.01.2017 17:44
dsa
Která se s ostatními prováže pomocí cizích klíčů.
Wikan 05.01.2017 18:02
Wikan
Jen pro kontrolu, zda to dělám správně. Mám například tabulky Ucitel(IdUcitele, Titul, Jmeno, Prijme…
Dupla 10.01.2017 14:21
Dupla
IdUcitele se má odkazovat na ID učitele v tabulce učitelů.
Wikan 10.01.2017 16:49
Wikan
V tabulke cviceni ti chyba stlpec IdUcitele A potom v tabulke cviceni urobis: Constraint fk_cviceni_…
wam_Spider007 10.01.2017 16:57
wam_Spider007
Díky moc! :) Ještě dotaz, když budu chtít vytvořit vztah m:n, tak si vytvořím pomocnout tabulku, tam…
Dupla 10.01.2017 17:07
Dupla
Ano. Pre tvoj priklad ucitel-cvicenie. Spravis si tabulku UcitelCvicenie, ktora bude obsahovat 2 stl…
wam_Spider007 10.01.2017 17:34
wam_Spider007
Ok, vyzkouším. Děkuju.
Dupla 06.01.2017 14:57
Dupla
S tebou to bude těžké. Nebavíme se o formuláři, který obsluhuje editaci záznamů v databázi, ale o vl…
Jan Fiala 05.01.2017 20:23
Jan Fiala
Myslím, že je to SQL. Ale nejsem si jistý. Když klasicky ve Visual Studiu dáš New Project -> vlevo v…
Dupla 06.01.2017 15:00
Dupla
ked vytvoris SQL Server Database project, tak je to len o tom, ze v nom mozes vytvarat scripty tabul…
wam_Spider007 06.01.2017 17:12
wam_Spider007
Díky za ujasnění! Ještě dotaz. Pokud tento vytvořený SQL Server Database Project připojím k asp .net…
Dupla 06.01.2017 18:56
Dupla
Samotny SQL Server Database Project k ziadnej asp .net aplikacii nepripojis. Projekt sluzi len na vy…
wam_Spider007 06.01.2017 23:34
wam_Spider007
Jakto? V tom návodu tento SQL Server Database Project přímo k asp .net aplikaci připojuje a i já jse…
Dupla 07.01.2017 10:53
Dupla
To, ze ti to funguje je super. Postup si teda urobil spravne. Problem je, ze nerozumies tomu, co rob…
wam_Spider007 07.01.2017 11:16
wam_Spider007
Díky za ujasnění. No právě proto se ptám, abych to věděl. :) Takže jsme zase vlastně na začátku naší…
Dupla 07.01.2017 11:41
Dupla
Co za kódování používáte, aby v databázi šly české znaky? Našel jsem nastavení při kliknutí na proje…
Dupla 12.01.2017 12:43
Dupla
UTF-8
Wikan 12.01.2017 12:58
Wikan
To tam právě není :/
Dupla 12.01.2017 13:01
Dupla
Jo aha, ty se sice ptáš na kódování, ale "cestu" tam máš pro Collation, tedy v podstatě pořadí znaků…
Wikan 12.01.2017 13:26
Wikan
No jiné jsem tam nenašel. Nebo kde se dá nastavit kódování?
Dupla 12.01.2017 13:36
Dupla
Zdá se, že MSSQL používá standardně UCS-2 a nejde to změnit. Takže to ani nemusíš řešit.
Wikan 12.01.2017 13:49
Wikan
Stačí teda když nastavím to Collation jo? Protože se mi stalo, že v aplikaci napíšu nějaký text s če…
Dupla 12.01.2017 13:51
Dupla
A byla to MSSQL databáze?
Wikan 12.01.2017 13:53
Wikan
Nejspíš ano. Bylo to to samé jak tady popisuji, dělané ve visual studiu.
Dupla 12.01.2017 14:02
Dupla
Tak zkus a uvidíš, fungovat by to mělo.
Wikan 12.01.2017 14:05
Wikan
Vyzkoušel jsem a nefunguje. Z českých znaků funguje jen "šžýáíé" tak, jako předtím :/
Dupla 18.01.2017 09:39
Dupla
Při vytváření instance serveru a pak i databáze určuješ collation (kódovou stránku) pro databázi. Ta… poslední
Jan Fiala 18.01.2017 16:25
Jan Fiala

Jen pro kontrolu, zda to dělám správně. Mám například tabulky Ucitel(IdUcitele, Titul, Jmeno, Prijmeni) a Cviceni(IdCviceni, Text) a chci, aby mezi těmito tabulkami byla vazba 1:n (Ucitel (1) : Cviceni(n)). V kódu jsem to napsal takto: CONSTRAINT [FK_Ucitele_Cviceni] FOREIGN KEY ([IdUcitele]) REFERENCES [Cviceni]([IdCviceni]).
Je to správně? Nebo jak jinak by to mělo být?

V tabulke cviceni ti chyba stlpec IdUcitele
A potom v tabulke cviceni urobis:
Constraint fk_cviceni_ucitel foreign key (IdUcitele) references ucitel(idUcitele)

A len tak minochodom. Nazvy stlpcov sa nesklonuju. Takze IdUcitel alebo este lepsie UcitelId.

Ano. Pre tvoj priklad ucitel-cvicenie.
Spravis si tabulku UcitelCvicenie, ktora bude obsahovat 2 stlpce: UcitelId a CvicenieId.
UcitelId sa bude referencovat na UcitelId z tabulky ucitel a CvicenieId na CvicenieId z tabulky Cvicenie.
Taktiez je vhodne si spravit unique index na danu dvojicu stlpcov v pomocnej tabulke.

S tebou to bude těžké.
Nebavíme se o formuláři, který obsluhuje editaci záznamů v databázi, ale o vlastním návrhu databáze. Tam se dělají vazby a definuje referenční integrita.

Takže kromě programování si nejprve nastuduj DB design pro svůj databázový engine. Zatím jsi neprozradil,. co hodláš používat, jestli MySQL, MS SQL, SQL Lite, ...

ked vytvoris SQL Server Database project, tak je to len o tom, ze v nom mozes vytvarat scripty tabuliek, procedur, funkcii a views. Ma to vyhodu v tom, ze kod databazy mozes mat zahrnuty v source control managemente (Git, TFS) a zaroven ti to zjednodusuje deploy na SQL Server.
Samotne tabulky si ale v tom projekte musis vytvorit ty. Klasicky pravym tlacidlom na projekt a vyberies moznost Add > Table. Potom si napises script tabulky, kde zaroven mozes pisat cudzie kluce. Tieto cudzie kluce predstavuju jednotlive vazby medzi tabulkami.

Díky za ujasnění! Ještě dotaz. Pokud tento vytvořený SQL Server Database Project připojím k asp .net aplikaci může teda fungovat a být použit jako databáze ano? Samozřejmě jen jako ukázková na lokálním pc. Někde na net na server bych musel zajistit nahrání databáze a její migraci.
Jinak postup jsem našel tady

Samotny SQL Server Database Project k ziadnej asp .net aplikacii nepripojis. Projekt sluzi len na vytvorenie "kodu" databazy a jeho nasledny deploy na SQL Server - napriklad aj tvoj lokalny ak ho mas vo svojom PC nainstalovany.
Ide o prerekvizitu pre entity framework. Ked si vsimnes ten postup, ktory si sem linkol, tak ma pokracovanie.
Ked uz spravis deploy databazy, tak spravis vo visual studiu dalsi projekt (napriklad MVC Web), ktoremu das do referencii entity framework. Entity framework ma "wizarda", ktory z databazy na tvojom lokalnom SQL Serveri, ktoru si vytvoril pomocou toho database projectu, vygeneruje C# triedy (tzv. model). Tie nasledne budes v kode pouzivat na komunikaciu s DB.

Jakto? V tom návodu tento SQL Server Database Project přímo k asp .net aplikaci připojuje a i já jsem to zkoušel a funguje to. Vytvořil jsem si CRUD v asp .net aplikaci a data se normálně ukládají do tabulek a funguje to.
Jo, přes entity framework jsem to dělal. A tak jak říkáš jsem si vygeneroval model pro tabulky.

Když né teda tímto způsobem, tak jak jinak to udělat? Tento způsob normálně funguje.

To, ze ti to funguje je super. Postup si teda urobil spravne. Problem je, ze nerozumies tomu, co robis. Len ides surovo bod po bode z toho navodu.
Hlavne nechapes rozdiel medzi SQL Server Database Project-om a Databazou v SQL Serveri.
SQL Server Database Project je len kod, ktory ked "zbuidujes", tak sa ti vytvori databaza v SQL Serveri. A Entity framework az z tejto databazy robi model. To je cele co sa ti snazim vysvetlit. EF to nerobi z toho database projectu, ale uz priamo z realnej databazy.

Při vytváření instance serveru a pak i databáze určuješ collation (kódovou stránku) pro databázi. Ta se pak mění hodně těžko. A pokud máš collation u DB jinou než u instance SQL serveru na kterém databáze běží, budeš mít problém s temp tabulkami, které se vytváří jen v paměti v TEMPDB - ta má kódovou stránku danou instancí.
Takže s tím souvisí i to, že budeš DB deployovat na nějaký server a měl bys vědět, jak je server nastavený. Když neřekneš jinak, tak se ti ta databáze vytvoří s tou samou kódovou stránkou jako instance na serveru.

Proč děláš něco, k čemu o čem nevíš ani úplné základy a nejevíš snahu si o tom něco přečíst?
Nevíš ani jakou databázi vytváříš, jediné co víš je, že to děláš ve Visual Studiu :-(

Dejme tomu, že DB běží na MS SQL. Spusť (případně před tím si nainstaluj) SQL management studio, podívej se na collation databáze (dá se to zvládnout i z kódu pomoci SQL dotazů), stačí nakouknout do MSDN.

Zpět do poradny Odpovědět na původní otázku Nahoru