jjzjj

sql-server - SQL Server中具有可变特征的对象基于EAV或XML设计数据库?

我想制作一个数据库,可以存储任何对象之王,并为每一类对象提供不同的特征。给出我在不同论坛上提出的一些问题,解决方案是http://en.wikipedia.org/wiki/Entity-attribute-value_model或http://en.wikipedia.org/wiki/Xml在存储前进行某种验证。能否请您提供上述方法的替代方法或一些优势或示例,以帮助确定这两种方法中哪一种是我的最佳方法?谢谢更新1:您的数据库读取或写入密集吗?两者都是->拍卖引擎您是否曾经想过从SQLServer转移到另一个平台?我不会移动它,我将使用WCF服务向移动设备公开功能。您打算如何将数据呈

asp.net - 使用哪一个?数据库中的 EAV 或 Blob?

我目前正在努力改造我们应用程序的数据系统。基本上,它的设计是为了让人们可以添加他们想要的所有自定义字段,只有几个常量/始终存在的字段。我们目前的设计给我们带来了很多维护问题。我们所做的是动态地(在运行时)为每个字段向数据库添加一列。我们必须有一个元表和其他杂物来维护所有这些动态列。现在我们正在研究EAV,但它似乎并没有好多少。基本上,我们有许多不同类型的字段,因此会有StringValues、IntegerValues等表……这让事情变得更糟。我想知道在数据库中使用JSON或XMLblob是否是更好的解决方案,特别是因为在大多数用例中,当我们从这些表中检索任何内容时,我们需要整行。问题

asp.net - 新产品属性的实体属性值 (EAV) 与 XML 列

我有一个现有的成熟架构,我们需要向其添加一些新的产品属性。例如,我们有Products.Flavor,现在需要添加新的属性,如Weight、Fragrance等。与其继续扩大Products表,我正在考虑其他几个选项。首先是一个新的Attributes表,它将有效地成为任意属性的属性包,以及一个ProductsAttributes表,用于存储特定产品属性的映射(和值)。这就是实体-属性-值(EAV)模式,正如我对它的理解。另一个选项是向Products表添加一个名为Attributes的新列,它是XML类型。在这里,我们可以在不添加新表的情况下任意向任何产品实例添加属性。每种方法的优缺

c# - 如果 EAV 是邪恶的,那么动态值使用什么?

我需要创建数据库,其中Accountgroup表将包含动态字段,以便Accounts可以在需要时输入这些动态字段值。这可能并不重要,但我将C#与EF和Linq结合使用。这对我来说很难,因为我从来没有做过那样的事情,而且自从我做了研究后,每个人都在说EAV系统很糟糕,你应该以不同的方式设计它,问题是没有人事后告诉-怎么办?所以也许你可以帮我,告诉我如何在不执行EAV的情况下实现类似的东西?这就是我目前所拥有的。2020年编辑:我只想编辑这篇文章,因为现在是2020年,对此有明确的答案:Postgreswithjsonbtype。EFCore支持它,因此您实际上可以毫无问题地保存和查询动态

php - 安装时没有引号的 eav_entity_type

起源...我有一个带有设置脚本的模块(常见的mysql4-upgrade-0.1.0-0.1.1.php),添加一个属性来引用:$eav=newMage_Eav_Model_Entity_Setup('sales_setup');$eav->addAttribute('quote','my_attribute',array('type'=>'varchar'));如果我在空数据库上运行我的magento商店,设置脚本会运行,并且“错误的实体ID”错误会中断该过程。调用堆栈指向我的设置脚本。...寻找...如果我转到数据库,我会看到eav_entity_type表已填充但只有8种类型:报

php - Magento:什么是空的 EAV 安装类?

例如,Mage_Eav_Model_Entity_Setup有很多后代classMage_Checkout_Model_Resource_SetupextendsMage_Eav_Model_Entity_Setup{}但它们都是空的。拥有所有这些空类有什么用?是否只是为了可扩展性和保留在同一模块的不同设置脚本中共享的通用功能?我在想这些自定义类可能会触发某种模块自动检测,但找不到这方面的任何提示)。(基于Magento认证学习指南:使用自定义设置类在自定义模块中操作EAV属性的优势是什么)。 最佳答案 首先,您需要了解Magent

php - EAV 表上的 Doctrine ORM

我正计划创建我的应用程序并为模型使用ORM,但事实是,数据库的一部分使用了实体属性值表。我非常喜欢DoctrineORM,但我不知道是否有可能创建看起来像任何普通Doctrine实体的类,而实际上连接到的表是EAV样式。是否可以在这方面使用Doctrine,如果可以,如何使用? 最佳答案 绝对有可能:有这样的关系:对象(一对多)->AttributeValue->ManytoOne->AttributeType 关于php-EAV表上的DoctrineORM,我们在StackOverfl

mysql - 存储具有不同属性的实体(EAV 替代方案)

我正在寻找一种方法来将类似EAV的主题存储在关系数据库中。我打算使用Rails+Mysql。我对PHP+Mysql中的EAV几乎没有经验。约500个条目。这没什么,当然,所有查询都很快(尽管没有查询缓存)。但是如果有一百万条记录呢?该怎么办?使用MongoDB?或者也许Sphinx可以在这种情况下提供帮助?或者SQL+NoSQL串联?简而言之,最好的方法是什么?附言我对Rails还完全是个菜鸟,转而使用PHP,所以请告诉我,可能存在哪些陷阱。对不起我的英语) 最佳答案 我会说MongoDB,但如果由于某些原因你更喜欢使用普通数据库,

mongodb - 将遗留 EAV 模式转换为 Mongo 或 Couch

假设我有一个遗留应用程序,由于各种原因,以前的开发人员决定必须有一个任意灵活的架构,他们再次重新发明了实体-属性-值模型。他们实际上是在尝试构建一个文档存储库,Mongo或Couch等工具现在更适合当今世界,但以前的团队不可用或不知道。为了保持竞争力,假设我们需要构建更强大的方法来查询和分析我们系统中的信息。基于属性的绝对数量和多样性,map/reduce似乎更适合我们的问题集,而不是逐渐将系统重构为关系性更强的模式。原始源数据库有数百万文档,但只有少量不同的文档类型。不同文档类型之间存在一些共性。从MySql等大型EAV实现迁移到Mongo或Couch等面向文档的存储的有效策略是什么

mongodb - 用于用户设计表单的数据存储 - NoSQL 对 EAV 的任何优势

我需要允许在我的软件中通过Web界面创建用户设计的表单。即,他们创建一个问题、一个类型(文本、单选框、复选框等)、选项(如果需要)(单选框/勾选框),然后添加,并继续此过程,直到他们在表单中创建了所有字段。除了查看/填写/打印它们之外,不会对他们进行任何查询,即他们正在添加可以无限次填写的“问卷”(有些可能是20次,有些是数百万次)。经过一些研究后,EAV类型的解决方案似乎听起来不错,但对此有很多负面看法。许多人建议在这种情况下使用NoSQL数据库,但我并没有真正看到优势-您仍然拥有一个包含许多字段的表单,然后是包含许多字段的结果。某些字段(text/text_area/date)可能