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

Opravdu stojí za to normalizovat cestu Toxi? (3NF)

To, že budete mít všechny značky v různých záznamech (normalizované), znamená, že v případě potřeby budete moci značky snadněji přejmenovat a sledovat historii názvů značek.

SO , například přejmenován na SQL Server související značky alespoň třikrát (mssql -> sqlserver -> sql-server ).

Mít všechny značky v jednom záznamu (denormalizované) znamená, že můžete tento sloupec indexovat pomocí FULLTEXT indexovat a hledat příspěvky se dvěma nebo více štítky najednou:

SELECT  *
FROM    posts
WHERE   MATCH(tags) AGAINST('+mma +ufc')

což je také možné, ale méně efektivní s normalizovaným designem.

(Nezapomeňte upravit @ft_min_word_len k indexování značek 3 znaků nebo méně, aby to fungovalo)

Oba návrhy můžete kombinovat:uložit jak tabulku mapy, tak denormalizovaný sloupec. To však bude vyžadovat více údržby.

Můžete také uložit normalizovaný návrh do své databáze a použít zadaný dotaz k načtení značek do Sphinx nebo Lucene .

Tímto způsobem můžete prohledávat historii pomocí MySQL , fulltextové vyhledávání značek pomocí Sphinx a nebude vyžadována žádná další údržba.



  1. Jak přidat Total Row do MySQL

  2. PostgreSQL streamovací replikace – hluboký ponor

  3. Systém přihlášení uživatelů s databází mySQL s Angular JS?

  4. Změnilo se chování Android SQLite Journal?