2009-07-06 7 views
1

J'ai été récemment exposé au concept d'un modèle de base de données d'attribut d'attribut d'entité via. le système de commerce électronique Magento. Varien (la société derrière Magento) a utilisé une base de données relationnelle (mysql) pour créer un modèle de style EAV en utilisant des objets PHP.EAV Solutions/Packages/Fournisseurs?

Je suis curieux de savoir s'il existe des solutions de bases de données EAV "natives". Le "CouchDB overflow de pile récemment sur la pile" semble pouvoir convenir à ce modèle. Est-ce une supposition correcte, ou est-ce que CouchDB est quelque chose d'autre? Où pourrais-je trouver EAV dans la nature?

Relationnel est à MySQL comme EAV est à _______?

+0

Je dirais toujours que les bases de données relationnelles travaillent pour EAV. Cependant, il semble que ce serait également un bon ajustement pour les bases de données de style couchdb, maintenant que vous l'avez mentionné. – benlumley

+0

@benlumley: Comment créer une table EAV dans une base de données relationnelle appliquer une contrainte NOT NULL? –

+0

@billkarwin vrai, et un bon point. 6 mois après le dernier commentaire, je suis d'accord avec vous que non relationnel est une meilleure solution, pas une aussi bonne - j'ai essayé quelques dbs non relationnelles maintenant! mais n'est-il pas plus facile là-bas? – benlumley

Répondre

3

Relational est de MySQL comme EAV est ...

Différentes technologies de bases de données non relationnelles sont de plus en plus populaires, pour soutenir les attributs dynamiques. Voici quelques-unes que vous devriez vérifier:

Tous ces éléments sont préférables à essayer de forcer le modèle de données EAV dans une base de données relationnelle!

Voir aussi The Next-gen Databases