Question

Pour faire un système de managment de documents, je suis à la recherche de documents magasins comme MongoDB, mais parce que j'ai plus d'expérience avec les bases de données régulières (Firebird, Sql Server, Mysql) Je me demande si est modèle possible un magasin de documents sur un relationnel une.

Les avantages sur un magasin de documents, schéma moins:

  • Mettre en place bien à la tâche de stocker les métadonnées sur les fichiers arbitraires
  • Pas besoin de mettre à jour les schémas
  • Selon MongoDB, une excellente performance pour blob comme la vidéo
  • évolutivité facile

Mais avec un relationnel:

  • intégrité Referencial
  • meilleur outillage
  • Plus resilent crash & corruptions
  • SQL

Alors, comment pourrait fonctionner une base de données relationnelle dans ce cas?

Était-ce utile?

La solution

Un exemple simple MySQL:

CREATE TABLE Docs (
  id INT,
  attr VARCHAR(255),
  value BLOB,
  PRIMARY KEY (id, attr),
  KEY attr_index (attr)
)

Une fois que vous avez que vous pouvez ajouter un attribut à un document et d'autres choses quoi que ce soit de la valeur, et vous pouvez utiliser l'auto sur la table des jointures de documents pour faire des requêtes complexes comme:

SELECT * FROM Docs AS d1, docs AS d2 WHERE d1.attr = "foo" AND d2.attr = "bar"

Ce qui renvoie des documents avec foo et attributs bar.

scroll top