Pokud měříte milisekundy a disk IO vašeho systému není extrémně pomalý, pak by možnost 2 přinesla lepší výkon. Ale , mluvíme o zanedbatelném zisku v době provádění. Vzhledem k tomu, že již budete dotazovat DB, abyste získali novinku, bylo by vysoce optimalizováno, abyste získali pouze název kategorie ve stejnou dobu. Přidal bych mapovací tabulku id-název-kategorie na názvy kategorií . A připojte se k tomu při získávání novinek.
Z hlediska flexibility az hlediska eliminace co největšího počtu možných zdrojů chyb bych také souhlasil se svým výše uvedeným nápadem. Protože dodává vašemu systému flexibilitu a uchovává všechna vaše data na jednom místě. Změna názvu kategorie by vyžadovala úpravu jednoho sloupce v databázi namísto úpravy konfiguračního souboru php, nebo, pokud byla použita možnost 1, aktualizaci každého záznamu zpráv.
Nejlepší radou tedy je přidat tabulku s id-název-kategorie na názvy kategorií mapování a poté nechte položky zpráv obsahovat id kategorie, do které patří.
Pro zvýšení výkonu byste pak mohli data, která načtete o existujících kategoriích a další data, uložit do mezipaměti, abyste nemuseli neustále dotazovat DB na tyto informace.
Například. Mohli byste místo toho, abyste se vůbec připojili, získat všechny kategorie z tabulky kategorií, kterou jsem popsal výše. Uložte ji do mezipaměti v aplikaci a získejte ji až po zrušení platnosti mezipaměti. tj. dojde k vypršení časového limitu nebo je manipulováno s daty v db.