Autor Zpráva
Darker
Profil
Chtěl bych vytvořit následující tabulku, pokud už neexistuje:
CREATE TABLE jazz (
                           event int(6) NOT NULL,
                           name varchar(255) NOT NULL,
                           venuename varchar(255) NOT NULL,
                           city varchar(255) NOT NULL,
                           street varchar(255) NOT NULL,
                           date varchar(255) NOT NULL,
                           time varchar(255) NOT NULL,
                           perex varchar(255) NOT NULL,
                           note varchar(255) NOT NULL,
                           url varchar(511) NOT NULL,
                           image100 varchar(511) NOT NULL,
                           image180 varchar(511) NOT NULL,
                           anotace varchar(511) NOT NULL,
                           PRIMARY KEY (event),
                           UNIQUE id (event),
                           KEY id_2 (name)
                        )

Jsem v MySql spíš začátečník, takže si nejsem jistý, jestli to dělám dobře. Myslím hlavně poslední tři příkazy.
Vytvoření funguje, ale nevím, jestli by to nešlo lépe.
jenikkozak
Profil
Darker:
„Date“ bych dal do sloupečku s typem date a „time“ s time. Určitě image a „url“ musejí mít 511 znaků a „name“ 255? I ostatní délky by to chtělo zvážit. Ulice o 255 znacích? To je docela dost.
Darker
Profil
Bohužel jména sloupců neúplně korespondují s obsahem. Ale projedu obsahy pozorněji a skusím si tipnout nejmenší možné velikosti dat.
K tomu zkonrolování existence, máš nějaký nápad?

jenikkozak:
‚Date‘ bych dal do sloupečku s typem date a ‚time‘ s time.
Bude to fungovat, i když se časy takto opakují?
    [date] => 27/02/2011;16/03/2011;27/03/2011;03/04/2011
    [time] => 21:00;21:00;21:00;21:00

EDIT: Jak se při vytváření nastaví kódování? Při výpisu z DB je diakritika ok, ale v MYPhp adminovi to vypadá zle.
jenikkozak
Profil
Darker:
K tomu zkonrolování existence, máš nějaký nápad?
CREATE TABLE IF NOT EXISTS `jazz`(


Čeština ve spojení je uvedena ve FAQ. Výchozí kódování tabulky se nastaví pomocí DEFAUL CHARSET. Na dev.mysql.com je o tvoření tabulek dost podrobné povídání.
TomášK
Profil
Darker:
* date a time jsou klíčová slova, je nutné je buď oescapovat nebo změnit název sloupce.
* pokud se hodnoty opakují, nemají co dělat v jedné buňce, je vhodné pro ně vytvoři další tabulku, která bude provázaná přes event.
* primární klíč se zpravidla jmenuje id, ale není to nutné.
* primární klíč je z definice unique, not null, není tedy třeba ho dodatečně specifikovat jako unique
* existuje kontrukce CREATE TABLE IF NOT EXISTS
* je nepřirozené kombinovat češtinu (anotace) a angličtinu (vše ostatní) v názvech sloupců
* image100 mi také nepřijde jako vhodný název sloupce. Co když usoudíš, že 80 je lepší? raději thumbnail, small_image, medium_image, large_image apod.
Darker
Profil
TomášK:
* date a time jsou klíčová slova, je nutné je buď oescapovat nebo změnit název sloupce.
* je nepřirozené kombinovat češtinu (anotace) a angličtinu (vše ostatní) v názvech sloupců
* image100 mi také nepřijde jako vhodný název sloupce. Co když usoudíš, že 80 je lepší? raději thumbmail, small_image, medium_image, large_image apod.

Jména sloupců jsou dané, pokud není nějaký zásadní důvod je pojmenovat jinak (jako date, time, ačkoliv mi to tedy normálně funguje).

CREATE TABLE IF NOT EXISTS
Ano, špatně jsem prve hledal. Neuvědomil jsem si co se myslí zápisem
CREATE TABLE [IF NOT EXISTS]

Tak jsem řešení zavrhl. Až pak mě napadlo dát závorky pryč.
Děkuji Vám za upozornění a rady, pokusím se zlepšit.
_es
Profil
Darker:
Až pak mě napadlo dát závorky pryč.
Také zátvorky v dokumentácii označujú voliteľnú časť príkazu. Časti mimo zátvoriek sú povinné.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0