sql >> Databáze >  >> RDS >> Mysql

php mysql - mám přidat pole category-name do tabulky nebo ne?

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.



  1. Hledání nejnovější zprávy z tabulky, seskupené podle uživatelů v mysql

  2. Strategie pro řešení neustále se měnících požadavků na schémata MySQL?

  3. Jak vytvořit více LEFT JOINů s NEBO plně používat složený index? (část 2)

  4. Můj DBA je nemocný – Tipy pro přepnutí databáze při selhání databáze pro správce systému