The following module was proposed for inclusion in the Module List:
modid: EAV
DSLIP: adpOp
description: Entity-Attribute-Value database layer
userid: REVOLET (James Barton)
chapterid: 7 (Database_Interfaces)
communities:
#eav on irc.freenode.net
similar:
rationale:
The EAV namespace will contain modules that provide a general
implementation of the Entity-Attribute-Value (EAV) data model,
providing a simple and unified interface to access data on several
different types of storage backends.
See
http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model
for information about EAV.
The primary advantage of an EAV interface is that it only requires
a simple, static schema when used with an RDBMS like MySQL or
PostgreSQL. Other storage backends such as Riak and Redis are
supported.
Features of this EAV implementation include support for
relationships between entities, even across different storage
backends, optional data typing with validation, and unified
indexing.
EAV is not a general solution for every project, and is even an
anti-pattern in many cases. It is, however, useful in some specific
situations where flexibility in schema management and backend
storage are more important than data structure and normalization.
Reddit.com is a good example of a project that has benefited from
using an EAV data model to help scale up operations and simplify
database management.
When I first learned about Reddit.com's use of an EAV model, I
immediately searched CPAN for EAV and didn't find anything. I think
it's likely other Perl developers have done the same thing, and so
it might be useful to have a set of EAV modules available on CPAN.
Thank you for your time and consideration.
enteredby: REVOLET (James Barton)
enteredon: Thu Sep 20 16:28:02 2012 GMT
The resulting entry would be:
EAV adpOp Entity-Attribute-Value database layer REVOLET
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=e1b00000_e28fc7b1bab3a8ae&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=e1b00000_e28fc7b1bab3a8ae&SUBMIT_pause99_add_mod_insertit=1
Peek at the current permissions:
https://pause.perl.org/pause/authenquery?pause99_peek_perms_by=me&pause99_peek_perms_query=EAV