Autor Zpráva
Wolfyk
Profil *
Mám jednoduchou MYSQL tabulku : ID (INT), nazev_pisnicky (VARCHAR)

a potřeboval bych vytvořit něco jako složený unikátní index. Příklad:

Mám umělce s ID=1 a u něj může být ve sloupečku nazev_pisnicky písnička určitého názvu vložena jenom jednou. Stejný název písně může být ovšem u jakéhokoliv jiného umělce s jiným ID.

Vyhovovalo by mne kdyby to šlo ošetřit na úrovni MYSQL -> errno 1064 - > nějaká hláška o duplicitě atd.

Pokud se ty unikátní indexy dají dělat zároveň nad více sloupečky, jak to zapsat v PhpMyAdminu? díky.
marcus33cz
Profil
Takže ty chceš unikátní index a zároveň ho nechceš. :D
Indexy nad více sloupečky samozřejmě lze, v PHPAdminu na to je taková kolonka dole pod strukturou každé tabulky. Tam si vybereš "vytvořit index nad více sloupci".

Pokud trváš na unikátním indexu, tak ho musíš spojit ještě s něčím, pokud chceš, aby mohlo mít více písniček stejné jméno. Například si můžeš vytvořit pomocnou tabulku artists_songs ve které bude id (autoincrement), id_artist, id_song. Toto bude tvůj unikátní index, který zároveň bude vyjadřovat vazbu HasAndBelongsToMany.

Potom budeš mít třeba:
artists
id name
1 Depeche Mode
2 Linkin Park

songs
id name
1 Enjoy The Silence

artists_songs
id id_artist id_song
1 1 1
1 2 1


Jo a doporučuju používat raději anglické názvy a klasickou syntax.

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: