sql >> Databáze >  >> RDS >> PostgreSQL

Je někdy dobrý nápad uložit pole jako hodnotu pole nebo uložit hodnoty pole jako záznamy?

Myslím, že byste si měli přečíst o normalizaci databáze a rozhodni se sám. Stručně řečeno, váš návrh má řadu problémů, ale můžete se rozhodnout, že s nimi můžete žít.

Nejviditelnější jsou:

  1. Co když je do řádku (1) přidána další značka? Musíte nejprve analyzovat, zkontrolovat, zda již existuje, a poté aktualizovat řádek na tags.append(newTag) .
  2. Je stále horší smazat značku? Hledat značky, je přítomno, znovu vytvořte značky.
  3. Co když má značka změnit název – možná nějaký proces moderování?
  4. A co je ještě horší, různí lidé specifikují název tagu jinak – bylo by těžké to racionalizovat.
  5. Co když chcete dotazovat data na základě značek? Váš dotaz bude mnohem složitější, než by bylo potřeba.
  6. Prezentace:Klient musí značku analyzovat, aby ji mohl použít. A co oddělovací pole? Změňte to a všichni klienti se musí změnit.

Stručně řečeno, všechny tyto operace se stávají obtížnějšími a těžkopádnějšími. Normalizace je navržena tak, aby tyto problémy překonala. Pravděpodobně jediný důvod, proč děláte to, co říkáte, IMO, je ten, že data zachycujete jednorázově a jsou pouze informativní – to znamená, že to dává smysl uživateli, ale ne samotnému systému. To je něco jako říkat, že je pravděpodobně nejlepší se tomu vyhnout (opět IMO).



  1. Jak omezíte skupinu podle řádků v dotazu mysql?

  2. Parametrizace dotazu ColdFusion

  3. Exportujte výsledky dotazů Oracle do souboru HTML při použití SQLcl

  4. Jak mohu uložit symbol '€' v MySQL pomocí PHP?