![]() |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
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.
|
||
KOMENTARZE
Nie ma komentarzy dla tej pozycji. |
||
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
1. |
Pacman linux Download: 5093x |
2. |
FreeBSD Download: 9307x |
3. |
PCLinuxOS-2010 Download: 8795x |
4. |
alcolix Download: 11188x |
5. |
Onebase Linux Download: 9908x |
6. |
Novell Linux Desktop Download: 0x |
7. |
KateOS Download: 6458x |
1. |
xinetd Download: 2619x |
2. |
RDGS Download: 937x |
3. |
spkg Download: 5243x |
4. |
LinPacker Download: 10385x |
5. |
VFU File Manager Download: 3394x |
6. |
LeftHand Mała Księgowość Download: 7482x |
7. |
MISU pyFotoResize Download: 3086x |
8. |
Lefthand CRM Download: 3755x |
9. |
MetadataExtractor Download: 0x |
10. |
RCP100 Download: 3371x |
11. |
Predaj softveru Download: 0x |
12. |
MSH Free Autoresponder Download: 0x |