Podstawowa różnica pomiędzy XMLem, a SQLem jest taka, że XML jest właśnie hierarchiczny, natomiast bazy SQL są relacyjne. Stąd też odwzorowanie jednego typu na drugi często bywa bardzo kłopotliwe.
CREATE TABLE `categories` (
`categorie_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`id` VARCHAR( 255 ) NOT NULL ,
`caption` VARCHAR( 255 ) NOT NULL ,
`icon` VARCHAR( 255 ) NOT NULL ,
`description` VARCHAR( 255 ) NULL ,
`sound` VARCHAR( 255 ) NULL
) TYPE = MYISAM ;
CREATE TABLE `pages` (
`page_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`category_id` INT NOT NULL ,
`id` VARCHAR( 255 ) NOT NULL ,
`color` CHAR( 8 ) NULL ,
`label` VARCHAR( 255 ) NOT NULL ,
`icon` VARCHAR( 255 ) NULL ,
`text` TEXT NOT NULL ,
`obrazek` VARCHAR( 255 ) NOT NULL
) TYPE = MYISAM ;
CREATE TABLE `news` (
`news_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data` DATE NOT NULL ,
`tresc` TEXT NOT NULL
) TYPE = MYISAM ;
to tylko szkielet z przykładowymi możliwościami, i pewnie będziesz musiał w nim sporo pozmieniać
gdybyś próbował zrobić CREATE TABLE nazwa, gdzie nazwa to nazwa już istniejącej tabeli dostał byś błąd, czyli tabele nie są nadpisywane, ale można je edytować (zapytanie ALTER TABLE)
nie musi, ale właśnie to nazywamy relacją, dzięki takiej relacji jesteśmy w stanie zbudować pseudo hierarchię - category_id w tabeli pages wskazuje na odpowiednią kategorię, w ten sposób stając się odpowiednikiem dziecka dla nodu category z Twojego XMLa
w MySQL istnieje niestety kilka metod składowych (np. MyISAM, InnODB), różnią się pomiędzy sobą różnymi rzeczami (przykładowo w InnODB wspiera transakcje, których nie ma w MyISAM)
do pola z atrybutem NULL można nie wpisać wartości. pola z atrybutem NOT NULL muszą zawsze mieć podaną wartość
nie wiem nigdy się flashem nie zajmowałem nie mam pojęcia jakie są wymagania