实体属性值(EAV)框架? [英] Entity Attribute Value (EAV) frameworks?

查看:443
本文介绍了实体属性值(EAV)框架?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到实体属性值在很多语境中我其实之前学到了什么它的名字了。它的技术,往往作物起来的时候,而不是存储在数据库列中的数据您翻转,并与实体,Attrbute,值列一个表,每一条数据成为该表中的一行。有时它也被称为开放式架构。

I'd seen Entity Attribute Value in lots of contexts before I actually learnt what its name was. Its that technique that often crops up when instead of storing data in database columns you 'flip it' and have a table with Entity, Attrbute, Value columns and each piece of data becomes a row in that table. Sometimes its also known as 'Open-Schema'.

它的好一些事情,坏的其他事情。这维基百科的文章有它背后的理论的一个很好的讨论。

Its good for some things, bad for other things. This wikipedia article has a good discussion of the theory behind it.

这似乎是那种经常使用的技术应具有的框架或发动机或NoSQL数据库或一般的软件工具来构建和支持。

It seems like the sort of oft-used technique that should have Frameworks or Engines or NoSQL Databases or general software tools to build and support it.

那么,你知道有什么?我在微软堆栈特别感兴趣(.NET,SQL服务器等),而且在其他技术堆栈。

So, do you know of any? I'm particularly interested in the Microsoft stack (.Net, SQL Server, etc), but also in other technology stacks.

例如,这里有一个项目,<一个HREF =http://code.google.com/p/entity-attribute-value-engine/相对=nofollow>构建ASP.NET EAV引擎这正是我要找的,但显然从未开始了。

For example, here's a project to build an ASP.NET EAV engine that is exactly what I'm looking for, but apparently never got started.

推荐答案

如果你可以用NoSQL数据库的缺点生活,最好的方式来解决这个EAV模式是一个NoSQL的替代像CouchDB的MongoDB的或。这些数据库提供了一个无模式的设计,它允许每一行有它自己的模式。做一个EAV与传统的RDBMS是自讨苦吃的查询变得非常困难,而且性能会受到影响的数据集就越大。

If you can live with the drawbacks of NoSQL databases, the best way to approach the EAV pattern is with a NoSQL alternative like CouchDB or MongoDB. These databases offer a "schemaless" design which allows each row to have its own schema. Doing an EAV with a traditional RDBMS is asking for trouble as the querying becomes very difficult and performance suffers the larger the dataset.

这是我在过去成功地使用一种替代是一个RDBMS与NOSQL变种(MySQL和MongoDB的)相结合。我使用MySQL存储数据EAV(获得的事务完整性),我使用MongoDB的作为报告商店购买与周围的EAV模型的查询问题。

An alternative that I have used successfully in the past is to combine an RDBMS with a NOSQL variant (MySql and MongoDB). I use MySQL to store the EAV data (gaining the transactional integrity), and I use MongoDB as a reporting store to get around the querying issues with the EAV model.

这篇关于实体属性值(EAV)框架?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆