问题标签 [entity-attribute-value]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1839 浏览

python - 如何结合 SQLAlchemy 和 EAV DB 模式的强大功能?

我最近一直在使用 Pylons 做一些工作,很像用于数据库交互的 SQLAlchemy 模型。我认为我的网站有一个部分可以从 EAV 模式中受益。

使用它作为我的表格示例:

我可以手动运行如下查询来提取和更新数据:

这既简单又有效……但手动构建查询并不是我的首选方法。我想使用 SQLAlchemy 创建我的表模型并让它完成所有的工作。

如果我要使用每个type都有自己的列的标准模式,我可以执行以下操作:

然后我可以使用以下方法提取数据:

我希望能够为我的 EAV 架构做同样的事情。所以基本上,我需要一种方法来扩展 SQLAlchemy 并告诉它,当我调用它时data.age,实际上意味着,我想要SELECT value FROM table WHERE id=1 AND type='age'.

这是可行的吗?还是我会被迫用手动发出的查询来弄乱我的代码?

0 投票
2 回答
1939 浏览

mysql - 什么是查询实体-属性-值模型的有效方法

我正在使用这样的数据库设置:

我想查询已经开始但未结束的艺术家名称“某个名称”的所有实体。

我想出了这样的事情:

但这并没有让我觉得非常有效。有更好的方法吗?

0 投票
2 回答
1742 浏览

database-design - 设计用于库存控制的“EAV”或“类/具体表继承”数据库

我正在为一个建筑项目开发库存控制系统。店员负责添加新库存并将其分配给员工/从员工那里退还。项目(以及它们的属性)将非常多样化;例如钢结构、服装、工厂/机械、工具等。

我的问题是选择基于类/具体表继承还是基于 EAV 的模式。我不知道项目将具有哪些属性,因此大概类/具体表继承方法需要最终用户将新表添加到数据库中(这可能吗?)。

请参阅我提出的EAV 架构。这会是一个合理的解决方案吗?我想我说得对,要识别一个库存项目,有必要在“EV”表的查询中执行多个自连接吗?

NB 使用 PHP、MySQL 和 Zend 框架进行开发。

0 投票
1 回答
721 浏览

mysql - MySQL 自联接用于基于 EAV 的库存控制应用程序

这个问题与我在关于库存控制应用程序的原始问题中建议的模式有关。

我正在尝试创建一个 MySQL 查询,为特定项目提供当前库存。

查询正在运行,但我想知道是否有更有效的方法来获取我需要的信息。

这会返回一些类似的东西

看起来很乱,但我可怜的大脑无法想出更好的东西。

有什么建议么?

0 投票
3 回答
1259 浏览

mysql - 保留页面更改历史记录。有点像 SO 对修订所做的

我有一个 CMS 系统,可以跨表存储数据,如下所示:

我正在尝试实施一个修订系统,有点像 SO。如果我只是为了这样做,Entries Table我打算将对该表的所有更改的副本保存在一个单独的表中。因为我必须为至少 4 个表执行此操作(TAGS 表不需要修改),所以这似乎根本不是一个优雅的解决方案。

你们会怎么做呢?

请注意,元表是在EAV (entity-attribute-value)中建模的。

先感谢您。

0 投票
1 回答
1712 浏览

sql - 具有额外属性的记录:稀疏表还是 EAV?

我有一个模型,它已经有几十个列,大部分时间都会被填充。现在我需要添加每次可能不同的字段。

最好的方法是什么?我不喜欢 EAV 模式。我也不喜欢有一个稀疏表的想法,特别是考虑到这些额外的属性可能会有很大的不同。

例子:

现在我想添加如下属性:

这些额外的属性可能因记录而异,并且大多数情况下它们的数量有限,但不能保证。

将记录视为:

我希望能够列出、过滤和搜索记录,就好像那些额外的属性实际上是列一样,例如:我应该能够进行类似SELECT fields FROM table WHERE ep_n > 20SELECT fields FROM table WHERE ep_1='ABC'

最好的解决方案是什么?

0 投票
2 回答
292 浏览

sql - 使用一个查询创建摘要结果

我有一个格式如下的表格。

每个 uut_sn 都有多个特征名称/值对。我想用 MySQL 生成表

这可能只需要一个查询吗?

谢谢,-彼得

0 投票
4 回答
1400 浏览

sql - 规范化 SQL 表

我们能否进一步规范化这个 Sql 表结构是主键是ID,Date,NAme,Type

等等

0 投票
2 回答
6434 浏览

sql - Transact-SQL 查询 / 如何组合多个 JOIN 语句?

几个小时以来,我一直在努力解决这个 SQL 难题,所以我心想:“嘿,你为什么不问问堆栈,让网络从解决方案中受益呢?”

所以就在这里。首先,这些是我的 SQL 表:

字段

表单域

价值观

形式

记录

数据池

考虑以下约束。

  • 每个 Form 有 0 个或多个 DataPool。每个 DataPool 只能分配给一个 Form。
  • 每个表单有 0 个或多个字段。每个字段可能被分配给几个表单。
  • 每条记录都有 0 个或多个 Value。每个值都链接到一个记录。
  • 每个 DataPool 有 0 个或多个 Record。每条记录都链接到一个数据池。
  • 每个值都链接到一个字段。
  • 此外,所有名称列都具有唯一值。

现在,问题来了:

我需要根据以下列从 Values 表中查询每个值:

  • 链接到值的字段名称
  • 数据池的名称链接了链接到值的记录
  • 链接到该数据池的表单的名称

上面的 3 列必须等于存储过程中接收到的 3 个参数。

这是我到目前为止得到的:

如何按 PoolName 列过滤 Values 表的行?DataPools 表与 Values 表没有直接关系,但仍与与 Values 表直接相关的 Records 表相关。关于如何做到这一点的任何想法?

0 投票
1 回答
2374 浏览

magento - magento 使用 where 条件选择属性

你好呀。我想知道以下的正确语法:

选择属性modellijn所在的属性brand=114。上面的语法返回一个错误。我一直在寻找 2 天来寻找正确的语法,但不幸的是到目前为止没有结果。

我希望这里有人愿意帮助我!