Extensible Data Modeling

14,743 views
14,306 views

Published on

Designing an extensible, flexible schema that supports user customization is a common requirement, but it's easy to paint yourself into a corner.

Examples of extensible database requirements:
- A database that allows users to declare new fields on demand.
- Or an e-commerce catalog with many products, each with distinct attributes.
- Or a content management platform that supports extensions for custom data.

The solutions we use to meet these requirements is overly complex and the performance is terrible. How should we find the right balance between schema and schemaless database design?

I'll briefly cover the disadvantages of Entity-Attribute-Value (EAV), a problematic design that's an example of the antipattern called the Inner-Platform Effect, That is, modeling an attribute-management system on top of the RDBMS architecture, which already provides attributes through columns, data types, and constraints.

Then we'll discuss the pros and cons of alternative data modeling patterns, with respect to developer productivity, data integrity, storage efficiency and query performance, and ease of extensibility.
- Class Table Inheritance
- Serialized BLOB
- Inverted Indexing

Finally we'll show tools like pt-online-schema-change and new features of MySQL 5.6 that take the pain out of schema modifications.

Published in: Technology
5 Comments
36 Likes
Statistics
Notes
No Downloads
Views
Total views
14,743
On SlideShare
0
From Embeds
0
Number of Embeds
79
Actions
Shares
0
Downloads
383
Comments
5
Likes
36
Embeds 0
No embeds

No notes for slide

Extensible Data Modeling

  1. 1. ©  2011  –  2013  PERCONA   Extensible Data Modeling with MySQL Bill Karwin Percona Live MySQL Conference & ExpoBill Karwin Percona Live 2013
  2. 2. ©  2011  –  2013  PERCONA   “I need to add a

×