Magento MySQL database diagram

Magento MySQL database diagram

If you worked with osCommerce, Zen Cart, CRE Loaded or any similar eCommerce platform before, you might find Magento database structure quite confusing when you see it for the first time. I advise you not to rush too much figuring out what is what by glancing through database. Try to spend first few hours getting familiar with some background. For purposes of flexibility, the Magento database heavily utilizes an Entity-Attribute-Value (EAV) data model. As is often the case, the cost of flexibility is complexity. Is there something in Magento that is simple from developers point of view?

Data manipulation in Magento is often more knowledge demanding than that typical use of traditional relational tables. Therefore, an understanding of EAV principles and how they have been modeled into Magento it is HIGHLY recommended before making changes to the Magento data or the Magento schema (Wikipedia: Entity-attribute-value_model). Varien has simplified the identification of EAV related tables with consistent naming conventions. Core EAV tables are prefixed with “EAV_”. Diagrams in this post contain a section labeled “EAV” which displays Magento’s core EAV tables and thier relationships to non-EAV tables.

Download Magento 1.1.6 MySQL database diagram (PDF)
Download Magento 1.3.2.4 MySQL database diagram (PDF)
For the later versions, visit http://www.magereverse.com/

Database diagrams and documents found in this post are intended to mirror the database schema as defined by Varien. Table relationships depicted in the diagrams represent only those relationships explicitly defined as Foreign Keys in the Magento database. Additional informal/undiagrammed table relationships may also exist, so when modifying the schema or directly manipulating data it is important to identify and evaluate possible changes to these tables as well (and the tables they relate to, and the tables they relate to…).

The author of Database Diagram is Gordon Goodwin, IT Consultant. You can see his info in the PDF.

PS. This topic was discussed on two more following articles from my colleagues. Mladen Lotar expanded this intro and provided more details at his Magento’s database layout and it’s EAV structure article at 2010, while in 2009. Branko Ajzele opened a discussion of how to Escape from EAV the Magento way.

You made it all the way down here so you must have enjoyed this post! You may also like:

External database connection in Magento Damir Serfezi
Damir Serfezi, | 4

External database connection in Magento

Creating EAV based model(s) in Magento Zoran Salamun
Zoran Salamun, | 16

Creating EAV based model(s) in Magento

Solving problems with Category tree database information Nikola Stojiljkovic
Nikola Stojiljkovic, | 19

Solving problems with Category tree database information

31 comments

  1. I am actually the Magento Schema Diagram author. Was thinking of updating it, so I went looking for my original and ended up here. I originally posted the diagrams to the Magento Forum & Wiki – no idea how they found their way here, but thanks for the comments.

  2. I like the way Magento works, I currently have an OSCommerce, and in the process to migrate. Thanks for this post as it was one of the first ones I read about the database because it is confusing however it will make things so much cleaner than OSC.

  3. Looking at the database schema, I can guess that Magento is a very comprehensive application. But on the other hand, all those overhead of having flexible attributes will cause the app to slow down significantly.

    I heard a lot of good things about Magento. Coming from Zen Cart, which is a bit slow shopping cart, I am curious to know how fast does Magento run?

  4. Hi,

    Beautiful diagram.

    Ho knows what tool is used for generate this diagram ?
    What graphic modelin tool ?

    Thanks

  5. Thank you so much! This is exactly what we needed to make our store operations more manageable. I feel like my life is about to get a whole lot easier.

    1. Hi Kelly,
      Sadly, it will not. 😉 There are very rare occasions where we would recommend communication with database directly outside Magentos collections. Magento tends to change database structure quite often with each new version, so we would suggest you not to build modules that directly manipulate existing tables. You never know what will change in the next version.
      Cheers!

  6. Feels like looking at a circuit diagram 😀 Considering how much wire an entitiy must traverse, I’m suprised to see that Magento can even run 🙂 Sorry for moaning over the slowness before seeing this 😛

  7. Hey Mera,

    Did they really help? I don’t know how could they 🙂
    Before Magento, database diagram was always the first item we investigated when we started to learn some platform. However, this is totally different. We rarely look into database diagram while working in Magento.

    Cheers!

  8. You are an amazing person! What an effort. You saved my day and my store.. i have been juggling with all teh tables so far, without knowing what is meant for what. thanks a ton!

  9. This is a life saver. I’m sort of disappointed Varien didn’t supply this along with a class diagram themselves. By the way I’m still looking for a comprehensive class diagram.

  10. Hey, friend!
    Thanks for publishing this, and congrats to Gordon. Astonishing work.
    I am afraid I cannot print it in an A4 though *sigh*

  11. Hi guys,
    Sorry for misunderstanding. Let me clarify something. I’m not the author. The Author is Gordon Goodwin, IT Consultant. You can see his info in the PDF.

  12. I can’t believe no one has take the trouble to thank you for this effort.

    This is exactly what I have been looking for.

    Many thanks,

    Harry Pierson

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.