PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Est-ce une mauvaise conception d'utiliser des tableaux dans une base de données ?

Réponse courte au titre :Non

Réponse un peu plus longue :

Vous devriez apprendre à utiliser les tableaux lorsque cela est approprié. Les tableaux ne sont pas mal conçus en eux-mêmes, ils sont aussi atomiques qu'un champ de caractères variables (tableau de caractères, non ?) Et ils existent pour nous faciliter la vie et rendre nos bases de données plus rapides et plus légères. Il y a des problèmes concernant la portabilité (la plupart des systèmes de base de données ne prennent pas en charge les tableaux, ou le font d'une manière différente de Postgres)

Exemple :

Vous avez un blog avec des articles et des balises, et chaque article peut avoir 0 ou plusieurs balises. La première chose qui me vient à l'esprit est de créer un tableau différent avec deux colonnes postid et tagid et assignez les balises dans cette table.

Si nous devons rechercher dans les articles avec tagid, la table supplémentaire est nécessaire (avec les index appropriés bien sûr).

Mais si nous voulons uniquement que les informations sur les balises soient affichées comme informations supplémentaires de la publication, nous pouvons facilement ajouter une colonne de tableau d'entiers dans le tableau des publications et extraire les informations à partir de là. Cela peut toujours être fait avec la table supplémentaire, mais l'utilisation d'un tableau réduit la taille de la base de données (pas besoin de tables supplémentaires ou de lignes supplémentaires) et simplifie la requête en nous permettant d'exécuter nos requêtes de sélection en rejoignant une table de moins et semble plus facile à comprendre par l'œil humain (la dernière partie est dans l'œil du spectateur, mais je pense que je parle ici pour la majorité). Si nos balises sont préchargées, aucune jointure n'est nécessaire.

L'exemple est peut-être médiocre mais c'est le premier qui me vient à l'esprit.

Conclusion :

Les tableaux ne sont pas nécessaires. Ils peuvent être nocifs si vous les utilisez mal. Vous pouvez vivre sans eux et disposer d'une excellente base de données rapide et optimisée. Lorsque vous envisagez la portabilité (par exemple, réécrire votre système pour qu'il fonctionne avec d'autres bases de données), vous ne devez pas utiliser de tableaux.

Si vous êtes sûr de vous en tenir à Postgres, vous pouvez utiliser en toute sécurité des tableaux là où vous le jugez approprié. Ils existent pour une raison et ne sont ni mal conçus ni non conformes. Lorsque vous les utilisez aux bons endroits, ils peuvent aider un peu avec la simplicité des structures de base de données et de votre code, ainsi qu'avec l'optimisation de l'espace et de la vitesse. C'est tout.