Autor Zpráva
Milan1236000
Profil
Zdravím,
řekl by mi, prosím, někdo stručně, jak v databázi vyřešit tagy? Jako příklad uvedu tuto stránku, kde při kliknutí na jakýkoli odkaz (u např. "Hrají: x") se zobrazí další filmy, ve kterých x hraje.
Asi vím na jaké principu to funguje. V databázi jsou v řádku x sloupce "film1", "film2", ..., ale to se mi zdá složité. Pokud to tak není, opravte mě. Šlo by to i jinak, pokud možno jednodušeji?
juriad
Profil
Rozhodně nechceš sloupce číslovat, to je chybný návrh. V MySQL budeš mít tabulky:
herci (id, jméno) # informace o hercích
filmy (id, název) # informace o filmech
hraje (id_herce, id_filmu) # infomace v jakém filmu jaký herec hrál
Samozřejmě, že tyto tabulky budou obsahovat i další údaje, jako třeba datum narození, rozpočet filmu, jakou postavu herec hrál.

Pak dotaz na všechny filmy, ve kterých hraje herec s id = 1 bude:
SELECT f.* 
FROM filmy f 
JOIN hraje h ON h.id_filmu = f.id 
WHERE h.id_herce = 1
Obdobně výpis všech herců v nějakém filmu s id = 1:
SELECT he.* 
FROM herci he 
JOIN hraje h ON h.id_herce = he.id 
WHERE h.id_filmu = 1
Seznam herců kteří hráli s hercem s id = 1:
SELECT he.* 
FROM herci he 
JOIN hraje h1 ON h1.id_herce = he.id 
JOIN hraje h2 ON h1.id_filmu = h2.id_filmu AND h1.id_herce != h2.id_herce 
WHERE h2.id_herce = 1
Milan1236000
Profil
Díky za objasnění.
Milan1236000
Profil
Nedalo by se to propojení těchto 3 tabulek vyřešit tak, aby se tam nemusela ručně vyhledávat ID herce a ID filmu a teprve poté je zapsat do propojovací tabulky?
Tento způsob mi nijak nevadí, jen jestli by to nešlo ještě jinak.
Díky.
Kajman
Profil
Např. při editaci filmu si můžete udělat hledání herců, které k filmu chcete přidat. Obdobně při editaci herce si můžete naprogramovat přidání do vazební tabulky s filmy.
Milan1236000
Profil
Kajman:
Super nápad, takže jedině přes php na stránce to udělat, jasný. Díky.

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