|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Jmeno |
Prijmeni |
Email |
| Petr |
Zajíc |
petr@xzajic.cz |
| Pavel |
Adam |
pa@pajus.com |
| Někdo |
Jiný |
kdosi@kdesi.cz |
Pakliže jste někdy pracovali například s OpenOffice, můžete si to představit jako list aplikace OOCalc. Naše tabulka má tři sloupce a nějaký počet řádků (taky tři, v našem případě). Každý řádek v tabulce obsahuje určitou skupinu dat, tedy například údaje o jedné osobě. Když budeme přidávat řádky, znamená to, že měníme data v tabulce, budeme-li přidávat sloupce, znamená to, že měníme strukturu tabulky.
Pozn.: Databázovému řádku se také někdy říká věta nebo záznam (record).
To bylo poměrně jednoduché. Teď si představte, že budete chtít mít jinou tabulku, která bude obsahovat údaje o tom, kdo napsal na Linuxsoft jaké články. To už je zajímavější problém. Jde totiž o to (a většinou to tak bývá), že jeden autor napíše více článků. Jak by mohla taková tabulka vypadat? Mohla by vypadat třeba takhle:
| Jmeno |
Prijmeni |
Email |
Nazev |
URL |
| Petr |
Zajíc |
petr@xzajic.cz |
PHP (1) historie a budoucnost |
http://www.linuxsoft.cz/article.php?id_article=171
|
| Petr |
Zajíc |
petr@xzajic.cz |
PHP (2) jak to funguje |
http://www.linuxsoft.cz/article.php?id_article=172
|
| Pavel |
Adam |
pa@pajus.com |
Úvod do C++ |
http://www.linuxsoft.cz/article.php?id_article=196
|
| Někdo |
Jiný |
kdosi@kdesi.cz |
Dohoní někdy Bill Linuse ? |
http://www.utopie.cz/nikdy/se_to_nestane.php
|
To nás přivádí k zajímavému problému - jméno, příjmení a e-mail autora tam máme zbytečně v obou tabulkách. Mít v tabulce článků kompletní informace o autorech nemusí být z několika důvodů výhodné. Tak například:
Asi tušíte, že se to tak v praxi opravdu nedělá - a máte pravdu. V praxi se řádky v tabulce autorů očíslují a namísto toho, aby se údaje opisovaly do tabulky článků se v této tabulce uvede jen odkaz na související záznam. Asi bude nejlepší to ukázat:
| ID |
Jmeno |
Prijmeni |
Email |
| 1 |
Petr |
Zajic |
petr@xzajic.cz |
| 2 |
Pavel |
Adam |
pa@pajus.com |
| 3 |
Někdo |
Jiný |
kdosi@kdesi.cz |
| Autor |
Nazev |
URL |
| 1 |
PHP (1) historie a budoucnost | http://www.linuxsoft.cz/article.php?id_article=171 |
| 1 |
PHP (2) jak to funguje | http://www.linuxsoft.cz/article.php?id_article=172 |
| 2 |
Úvod do C++ | http://www.linuxsoft.cz/article.php?id_article=196 |
| 3 |
Dohoní někdy Bill Linuse ? | http://www.utopie.cz/nikdy/se_to_nestane.php |
Z toho můžeme vidět, že se nám tabulka článků smrskla z pěti polí na tři a že namísto toho, abychom uváděli podrobnosti o každém autorovi, uvádíme jen číslo záznamu v související tabulce. Vztahu mezi tabulkou autorů a článků se říká odborně relace a právě proto, že lze data v tabulkách takto organizovat, nazývají se tyto databáze relační.
Zhruba řečeno se do tabulky dá ukládat to, co se v PHP dá ukládat do proměnných. Takže řetězce (jedno či vícepísmenné), logické hodnoty, datumy a různě přesná čísla. Každý sloupec tabulky má při jejím založení určen typ dat, které se do něj budou ukládat. Když se pokusíte do sloupce uložit hodnotu jiného datového typu, mohou databáze reagovat různě - někdy provedou cosi jako přetypování, někdy to skončí chybou. V MySQL se nejčastěji používají následující typy sloupců (tady byste našli kompletní seznam):
| Typ sloupce |
Co do něj |
Rozsah |
| int |
Celá čísla |
-2147483648 až -2147483647 |
| char (n) |
Řetězce |
Právě n znaků dlouhý řetězc |
| varchar (n) |
Řetězce |
Nejvýše n znaků dlouhý řetězec |
| date |
Datumy |
1.1.1000 až 31.12.9999 |
tam smrt sice nebere, ale databáze ano. Zvykněte si na to, že v tabulkách nebývají všechna pole povinná. Dejme tomu, že bychom v databázi autorů u někoho nevyplnili e-mail, protože ho nevíme. V tom případě mohou nastat při uložení řádku zhruba dvě situace:
NULL není rovno ničemu, co jsme až dosud poznali. Nerovná se nule, prázdnému řetězci ani logické hodnotě false. S NULL se dají dělat databázové operace, o nichž si povíme někdy příště. Ale už teď byste měli mít na paměti, že to je zvláštní věc.
Příště zanecháme suché teorie a ukážeme si, jak se z PHP k databázi vůbec napojit.
|
Nejsou žádné diskuzní příspěvky u dané položky. Příspívat do diskuze mohou pouze registrovaní uživatelé. | |
23.5.2013 6:20 /MaReK Olšavský
Lektoři, kteří používají e-learning, se již nejspíše setkali s platformou Moodle, jejíž vývojáři vydali verzi 2.5 populární platformy. Vedle několika stovek drobných vylepšení přibyly i novinky v mobilním přístupu, podpora twitterovského Bootstrapu pro témata, nebo instalace pluginů přes administrátorskou část webového rozhraní.
Přidat komentář
23.5.2013 6:20 /MaReK Olšavský
Nová distribuce Pidora by měla zajímat Fedoristy, kteří mají Raspberry-Pi, jelikož je optimalizovaným spinem právě pro tuto platformu. Novinky Pidory shrnul Rick Lehrbaum .
Přidat komentář
23.5.2013 6:20 /MaReK Olšavský
Krátce po vydání Debianu 7 vyšel i Debian GNU/Hurd 2013. Jádro GNU/Hurd se vyvíjí delší dobu, než Linux, ale zatím je spíše zajímavostí, protože jádro Linux se etablovalo u velkých společností a změna kurzu je více než nepravděpodobná.
Přidat komentář
22.5.2013 6:46 /MaReK Olšavský
Svobodný software ve státní sféře nejsou jen vítězství, ale i mýty a pověry, které jej vylučují z výběru. 5 nejčastějších hloupostí o F/L/OSS zkritizoval Adam Firestone na stránkách OpenSource.com. Nesetkáváme se s podobnými argumenty i při snaze prosadit svobodný software ve firmách a u soukromých osob?
Přidat komentář
22.5.2013 6:46 /MaReK Olšavský
Embedovatelná databáze SQLite byla vydána ve verzi 3.7.17, která nabízí větší rychlost (v některých úlohách až dvojnásobnou), opravy několika chyb, nebo vylepšení možností nahrávání rozšíření. O SQLite se píše výrazně méně, než o konkurenci, ale velmi pravděpodobně jde o nejčastěji nasazené řešení, díky mnoha aplikacím.
Přidat komentář
22.5.2013 6:45 /MaReK Olšavský
14. května 2013 IBM oznámila konec vývoje Lotus SmartSuite , Lotus Organizer a Lotus 1-2-3, balíků aplikací, jež byly považovány za špičku v oboru. Krátký nekrolog za legendární Lotus 1-2-3, který byl vyvíjen 30 let, sepsal Steven J. Vaughan-Nichols.
Přidat komentář
21.5.2013 7:05 /MaReK Olšavský
Vydání nástupce kdysi velmi populární distribuce GNU/Linuxu, Mandrake/Mandrivy, Mageia již nebude dále odkládáno, s 2 měsíčním zpožděním vyšla Mageia 3. Z novinek vybíráme: KDE 4.10.2, GNOME 3.6, LibreOffice 4.03, nebo Steam pro Linux. Mageia patří mezi distribuce, které lze doporučit méně zkuženým uživatelům.
Přidat komentář
21.5.2013 7:05 /MaReK Olšavský
Chytré telefony s operačním systémem Sailfish OS (který vytváří společnost Jolla, jež vznikla z bývalých vývojářů Maema Nokie) se blíží uvedení na trh, předobjednávka s dodáním na konci roku 2013 a kompatibilita s Androidími aplikacemi ukazují na blízkost cíle. Rozhovor s Marcem Dillonem odhaluje mnohé z pozadí vývoje. Není bez zajímavosti, že první aplikace byla zveřejněna pouhých 29 minut po vydání SDK.
Přidat komentář
18.5.2013 17:55 /
Martin Kumst
Re: zaheslování bash scriptu nebo složky
18.5.2013 7:44 /
---
Re: Prosím o pomoc či radu
15.5.2013 19:21 /
Filip Vaněček
Cesty k souborům při používání coolurl
13.5.2013 6:50 /
Radim Kolář
Zabbix
8.5.2013 6:07 /
MaReK Olšavský
Web Upd8