PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Дали някога е добра идея да съхранявате масив като стойност на поле или да съхранявате стойности на масив като записи?

Мисля, че трябва да прочетете за Нормализиране на базата данни и решете сами. Накратко обаче, има редица проблеми с вашето предложение, но може да решите, че можете да се примирите с тях.

Най-очевидните са:

  1. Ами ако към ред(1) се добави допълнителен етикет? Трябва ли първо да анализирате, да проверите дали вече е налице, след което да актуализирате реда, за да бъде tags.append(newTag) .
  2. По-лошо ли е да изтриете етикет? Търсете етикети, присъства, пресъздайте етикети.
  3. Ами ако етикет трябва да промени името - някакъв процес на модериране, може би?
  4. Отново по-лошо, какво ще кажете за различни хора, които указват име на етикет по различен начин - би било трудно да се рационализира.
  5. Ами ако искате да направите заявка за данни въз основа на тагове? Вашата заявка става много по-сложна, отколкото би трябвало да бъде.
  6. Представяне:Клиентът трябва да анализира етикета, за да го използва. Какво ще кажете за разделителното поле? Променете това и всички клиенти трябва да се променят.

Накратко, всички тези операции стават по-трудни и тромави. Нормализирането е предназначено да преодолее подобни проблеми. Вероятно единствената причина да правите това, което казвате, IMO, е, че улавяте данните като еднократни и те са само информационни - тоест, има смисъл за потребителя, но не и за системата сама по себе си. Това е нещо като да се каже, че вероятно е най-добре да се избягва (отново, IMO).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. грешка при хибернация:Няма първичен ключ за референтната таблица

  2. Различни записи с обединения и ред

  3. NodeJS Postgres грешка getaddrinfo ENOTFOUND

  4. Име на динамична таблица на SQL заявка в FOR

  5. Как да стигнем до края на деня?