× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

ASP.NET MVC v praxi od A do Z, 2. díl – Databáze

[ http://programujte.com/profil/9617-jakub-kottnauer/ ]Google [ https://plus.google.com/+JakubKottnauer?rel=author ]       [ http://programujte.com/profil/14523-martin-simecek/ ]Google [ ?rel=author ]       11. 8. 2009       22 494×

V tomto díle si připravíme databázi s párem tabulek, kterou bude naše aplikace hojně využívat.

V databázi budeme ukládat seznam naplánovaných večeří (v tabulce Dinners) a přihlášené hosty (v tabulce RSVP).

Začneme kliknutím pravého tlačítka na složku App_Data v projektu NerdDinner, zvolíme Add > New Item a z nabídky vybereme SQL Server Database, pojmenujeme ji NerdDinner.mdf. Všechny podobné věci se dávají právě do složky App_Data, protože se do ní nikdo jiný než aplikace nemůže dostat.

Vytvoření tabulek

Máme prázdnou databázi, takže teď si vytvoříme zmíněné dvě tabulky. Otevřeme si Server Explorer (Ctrl+W, L). Proklikáme se až k „adresáři“ Tables, na který klikneme pravým tlačítkem a zvolíme Add New Table. Podle následujícího obrázku nadefinujeme sloupce tabulky a sloupec DinnerID nastavíme jako primární pomocí označené ikonky klíče:

K tomu ještě sloupec DinnerID nastavíme jako tzv. „identity column“, to znamená, že se jeho hodnota bude při každém novém záznamu v tabulce inkrementovat o (například) jedničku. Uděláme to tak, že označíme sloupec DinnerID a v okýnku Column Properties najdeme položku Identity Specification, tu rozklikneme a položku „Is Identity“ nastavíme na Yes.

Nyní stiskneme Ctrl+S pro uložení tabulky a pojmenujeme ji Dinners.

Stejný postup použijeme i pro vytvoření tabulky RSVP. Sloupce budou tři (opět podle obrázku níže), sloupec RsvpID bude primární a identity.

Relace mezi tabulkami

Už máme v databázi dvě tabulky a dalším krokem bude nastavení tzv. „one to many“ relace. To nám umožní přiřadit jednu večeři více hostům (tedy jeden zápis v tabulce Dinners můžeme přiřadit nula nebo více zápisům v tabulce RSVP). Uděláme to tak, že sloupec DinnerID tabulky RSVP bude mít vazbu pomocí cizího klíče na sloupec DinnerID v tabulce Dinners.

Proto si otevřeme v Server Exploreru tabulku RSVP, zvolíme sloupec DinnerID, klikneme na něj pravým tlačítkem a zvolíme položku „Relationships“.

To zobrazí dialog, ve kterém můžeme nastavit relace:

Pro přidání relace klikneme na tlačítko Add v levém dolním rohu okna, po kliknutí se přidá relace pojmenovaná FK_RSVP_RSVP*. Rozbalíme větev Tables and Column Specification a klikneme na tlačítko vpravo (označené na obrázku).

V novém dialogu vidíme všechny tabulky a sloupce nějak zahrnuté v relaci, stejně jako jméno samotné relace. Primary Key Table nastavíme na „Dinners“ a sloupec DinnerID z tabulky Dinners nastavíme jako primární klíč. Jako cizí klíč nám poslouží sloupec RSVP.DinnerID. Potvrdíme tlačítkem OK.

Odteď bude každý řádek tabulky RSVP asociovaný s řádkem v tabulce Dinners. SQL server se postará o zaručení integrity dat za nás, tedy přesněji, zabrání nám přidat řádek do tabulky RSVP, pokud neodkazuje na platný řádek tabulky Dinners. Zároveň s tím nám zakáže smazat řádek z Dinners, pokud na něj odkazují nějaké řádky z RSVP.

Přidávání dat do databáze

Posledním krokem bude naplnění tabulky Dinners nějakými daty (večeřemi), abychom měli později s čím pracovat. Dělá se to tak, že klikneme v Server Exploreru na tabulku Dinners pravým tlačítkem a zvolíme Show Table Data a můžeme přidávat řádky. Bohatě bude stačit čtyři pět večeří, inspirovat se můžete na obrázku níže.

To je zase pro jednou vše, v dalším díle náš čeká sestavení modelu a pohrajeme si i s LINQ to SQL.

Zdroj: http://nerddinnerbook.s3.amazonaws.com/Part2.htm

Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2009052401-asp-net-mvc-v-praxi-od-a-do-z-2-dil-databaze/ ].