2010-09-25 6 views
0

Je crée un site pour documenter les bogues de navigateur où les utilisateurs peuvent soumettre un bogue et les utilisateurs peuvent soumettre des solutions/solutions de contournement à ces bogues. Je vais avoir des choses comme:Serait-il utile d'utiliser redis/nosql sur postgres pour mon application de suivi de bogues?

  • screenshots de bugs
  • navigateur moteurs de rendu
  • navigateurs
  • balises pour chaque bug
  • catégories de bugs (css, html, js)
  • solutions par bogue qui inclut des extraits de code
  • date/heure habituelle, auteur, date de modification

Depuis que je commence juste ce site, je n'aurai pas vraiment besoin de réduire la chauve-souris. Je me demande simplement si les données sont plus idéales pour quelque chose comme redis, ou devrais-je m'en tenir à rdbms (dans mon cas, Postgres)?

Répondre

2

Les informations sur les bogues tournent autour des produits et des utilisateurs, et ces données bénéficient d'une structure relationnelle. (Vous pouvez regarder une foule de programmes de suivi de bogues existants pour des exemples). Si vous trouvez que vous auriez besoin de structures de données hiérarchiques (comme redis se penche vers), il existe plusieurs implémentations différentes de structures arborescentes dans sql traditionnel, et postgres offre des constructions supplémentaires comme des tableaux et des structures ltree. En outre, Postgres a des méthodes assez éprouvées pour stocker des données binaires (comme des captures d'écran) et des données de texte volumineuses, ce qui selon votre moteur nosql pourrait ne pas être aussi stable que vous l'espériez. Je suppose qu'il pourrait y avoir un certain avantage à apprendre un autre système (otoh, d'autres diront que l'apprentissage de vos outils existants est plus bénéfique), mais d'un point de vue technique, il n'y a pas vraiment d'avantage.

+0

Intéressant. Recommanderiez-vous de stocker les images réelles dans la base de données, cependant? J'ai entendu les deux côtés de l'histoire. Je pense qu'il serait plus efficace de stocker juste le chemin d'un CDN séparé, non? –

1

MySQL aussi Les équipes de développement Postgress ne recommandent pas de stocker des images et des données binaires dans la base de données. A la place, vous pouvez stocker les images dans un répertoire, et le nom de fichier peut être l'ID de la base de données ou md5 (ID + secret) si vous craignez que les gens puissent "pirater" le système et voir les images qu'ils ne doivent pas voir. Cela vous permettra de bénéficier d'une base de données plus petite et d'un accès plus rapide - vous pouvez diffuser les images directement sur votre serveur Web.

Je suis un énorme fan de Redis, mais ce projet ressemble plus à un SGBDR.

+0

md5 (ID + secret): $ secret = "J'aime redis"; $ id = get_from_db(); $ image_path = "screenshots /"; $ image = $ chemin_image. md5 ($ id. $ secret). ".gif"; echo "screenshot"; – Nick

Questions connexes