Autor Zpráva
Filip Beneš
Profil *
Dobrý den,
chtěl bych se zeptat jaké je nejlepší řešení pro návrh tabulek v databázi MySQL pro konkrétní případ.

Mám vytvořenou tabulku articles a do ní vkládám data z formuláře, kde uživatel může zaškrnout jednu a VÍCE kategorií, které se budou k článku vztahovat (kategorie mají samostatnou tabulku category). Napadli mě 2 řešení ale ani jedním si nejsem zcela jistý, proto žádám o radu.

1.řešení => mohu v tabulce articles přidat sloupec categories a vkládam tam celý pole za pomocí serialize(). Toto řešení mi příde ale takové těžkopádné, pak zase data převáděť zpět a hledat v tom by asi nebylo nejvhodnější

2.řešení => mohu, vytvořit třetí tabulku s dvouma sloupci clanekID a categoryID, do které budu vkládat id článku uložené v articles a id categorie uložené v categories s možností že jeden článek, který bude mít více kategorií bude v tabulce na více řádkách .. tohle řešení se mi jeví jako lepší, ale také mi to nepříde jako nejšťastnější. V konečné variantě mě napadlo použití Pohledu pro zjednodušení výpisu, ale i tak se mi to nezdá to pravé ořechové

Existuje nějaké lepší řešení? Které z těchto dvou je lepší? Jak to řešíte vy?

Děkuji Filip Beneš
Kajman_
Profil *
2
AM_
Profil
2 se neboj, sice budeš mít víc tabulek ale takhle se to správně řeší, od toho je to relační databáze.
Filip Beneš
Profil *
A jak pak nejlépe řešit ten výpis? je to výhodné pomocí VIEWS, nevíte o nějakym podobným příkladu?
Kajman_
Profil *
Možná bude nejjednodušší uložit si všechny informace o kategoriích podle jejich id. V dotaze pak použít něco jako
select a.*, group_concat(k.categoryID) kategorie
from articles a left join tabulka3 k on a.clanekID=k.clanekID
group by  a.clanekID

V php si pak pohrát s těmi čísly a nadělat tam seznam kategorií i s odkazy a tak.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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