标签: entity-attribute-value

什么是关系数据库中客户端可创建和可修改的Web表单的最佳实现?

在我参与的几个Web应用程序项目中,客户端要求能够创建自己的表单.问题出现在如何存储其表单定义,以及如何将用户输入的值存储到这些自定义表单中.

我已经看到它有两种方式:

  1. 假设客户端仅定义了多少个字段,以及与这些字段关联的标签; 我们可以找到一个涉及四个表的解决方案. FormDefinition,FormFieldDefinition,FormInstances,FormFieldValues.客户端对FormDefinition和进行更改FormFieldDefinition,并且Web应用程序使用该信息呈现HTML Web表单,网站访问者(最终用户)将在该表单上提交表单,其中FormInstances创建新行并将值保存在FormFieldValues表.

    行中FormDefinition定义了表单,即form definition ID = 2, form title = 'Car Registration Form'.行中FormFieldDefinition定义表单的字段FormDefinition,即field definition ID = 7, field label = 'Car Model', field type = 'varchar(50)'.行FormInstance是用户填写的每个表单的实例,即definition id = 2, date_entered = '2008-09-24'.并且行FormFieldValues是用户的条目,即field definition = 7, value = 'Tiburon'.

    不幸的是,这意味着value列FormFieldValues必须是客户端可能在Web表单中指定的最大可能大小的char类型...并且当表单定义更改时,管理旧数据变得不确定.但用户条目是可查询的(我写了一个快速查询,列出了给定表单ID的用户条目,这类似于 …

forms database-design webforms entity-attribute-value

6
推荐指数
1
解决办法
775
查看次数

这个问题的最佳实践是什么(不同类别的不同属性)?

我有一些产品属于某个类别.

每个类别可以具有不同的属性.

例如,

  • 类别汽车具有属性颜色,功率,...
  • 类别宠物有属性 重量,年龄,...

类别数量约为10-15.每个类别的属性数量为3-15.产品数量非常大.

这个应用程序的主要要求是非常好的搜索.我们将选择类别,并为此类别中的每个属性输入标准.

必须为此方案设计数据库.(SQL Server 2005)

sql database sql-server database-design entity-attribute-value

6
推荐指数
2
解决办法
3113
查看次数

EAV over SQL Server

我有兴趣在SQL Server数据库上使用EAV模型.是否有人能够指出我现有模型/模式的文章或框架(我对Saas没有兴趣)?

sql-server entity-attribute-value

6
推荐指数
2
解决办法
9836
查看次数

Magento定制产品属性可见性

我一直在加载我的Magento网上商店,其中包含大量具有大量自定义属性的产品,但是,后端的"可见"值设置为"否".

除了这是我的错误(以及帮助我​​填写此产品数据库的人),我似乎无法找到将属性可见性设置为是的方法.

我已经尝试在attribute_id(102)中eav_attribute查找attribute_code"可见性",并希望将其设置为另一个值catalog_product_entity_int,但随后我突然意识到"我必须至少有一个属性设置为可见,所以我必须在这个值不是4"的至少一个记录.在写了一个排除4的小查询后,我发现我根本没有记录.

我究竟做错了什么?我在这看错了桌子吗?

还有另一种方法可以将属性本身的所有"可见"属性设置为"是"吗?

php attributes visibility magento entity-attribute-value

6
推荐指数
1
解决办法
5113
查看次数

单表继承,EAV还是NoSQL?

我正在为我的应用程序的数据模型寻找一个理智的方法.大多数线程专注于电子商务产品,我的情况有所不同.

目标是存储从客户收到的物品并报告给他们.虽然初始报告将是简单列表(这些是您的项目及其键/值对),但我希望为将来对集合的查询做好准备,因此我不确定EAV是一种好方法.

每个项目都是(重复)类型,每个项目将具有灵活数量的键/值对.我们有大约15种商品类型,他们不太可能快速增长.

键/值对的数量将很低,在4到20之间,并且(每个要求)不是基于项目类型,而是基于项目所属的客户.

为了澄清,客户可能希望我存储项目的条件,而另一个人可能希望我存储颜色或替换ID.这真的取决于.因此,无论如何我很可能在我的集合中都有NULL值,因为每个项目类型都将获得该客户的所有键/值.这让我觉得单表继承(带有NULL值)是可以接受的,但它必须是field_1 field_2等 - 通过某种映射,因为客户将决定所需键的名称.哪个对我不合适?

客户项目(及其键/值)的集合通常将> 20且<500,因此每个客户的数据集肯定不是很大.

也许在MySQL中为应用程序本身(创建客户及其所需的字段)中的(半)EAV是一种很好的方法,但是将实际收集的项目记录作为"文档"移动到NoSQL数据库(Redis等所有)中以进一步处理?

或者这是否可以/应该在RDBMS中解决的问题复杂化?

我也遇到了这个http://backchannel.org/blog/friendfeed-schemaless-mysql这似乎是一个解决方案但不确定,因为我的数字太低了.

rdbms database-design nosql entity-attribute-value

6
推荐指数
1
解决办法
2409
查看次数

EntityFramework 6 - 处理用户定义的属性

祝大家新年快乐!我刚刚开始为运行工具招聘业务的客户端建模ASP.NET MVC 5应用程序.部分解决方案涉及构建管理(后端)功能,管理员用户可以通过该功能创建/编辑从特定工具组附加到每个工具的自定义属性或工具元数据.我正在研究的概念是,在运行时,应用程序不应该知道元数据架构将是什么.所以我从这开始: 在此输入图像描述 是的,我知道...... 另一个EAV噩梦!我知道如果数据被正确地规范化,并且创建了相关的索引,那么它应该不会太糟糕.但老实说,我没有看到任何其他选择.例如:

博世无绳电钻

  • 工具组:钻头
  • 品牌:博世(ListItem - 从MetaAttributeListOption表中预填充)
  • 类型:无绳(listItem - 从MetaAttributeListOption表中预填充)
  • Keyless Chuck:是的(布尔)
  • 电压:14.4Volts(正文)
  • ...

现在这些属性将用于3个目的:

  1. 在前端显示为"规格"
  2. 用于在前端上过滤工具
  3. (可能)用于报告以确定"热门品牌"(例如)

所以我想我为此坚持使用RDBMS(SQL Server).我知道对此采用一种流行的方法是使用一些NoSQL解决方案,但说实话,我没有太多的实践经验来与MSSQL一起使用它.我可以将Values表组合成一个表,其中每个数据类型值都在它自己的列中,但这将留下很多空值来应对.

如果你能帮助我,我会留下以下问题:

  1. 这个模型是否符合我的要求?我不确定我MetaAttributeListOption是否正确设计了桌子的关系.
  2. 这种EAV方法有替代方案吗?
  3. 假设我的模型(或其衍生物)是我唯一的选择,我将如何使用Entity Framework 6实现此模型?对于管理后端的ASP视图页面,我想我需要某种HTML Helper来确定要渲染的正确编辑器,然后相应地填充.

我非常感谢StackOverflow社区提供的任何帮助.如果您需要更多信息,请告诉我,如果您认为不合适,请不要关闭此信息,因为我认为我的问题与编程相关.谢谢!


编辑: 我在这个值得我自己积分的200分钟上开始给予奖励...... 100个用于协助/建议我的问题1和2,以及100分的问题3.谢谢

data-modeling entity-attribute-value entity-framework-6 asp.net-mvc-5

6
推荐指数
1
解决办法
236
查看次数

Magento - 单个模型可能有多个表吗?

尝试为自定义模块设置配置文件 - 我是否需要为每个'resourceModel'设置一个唯一的模型,或者每个模型可以有多个表实体?

有可能让这样的东西工作:


    <config>...
 <model>
  <namespace>
    <class>Namespace_Module_Model</class>
    <resourceModel>module_mysq4</resourceModel>
  </namespace>
  <module_mysql4>
   <class>Namespace_Module_Model_Mysql4</class>
    <entities>
        <table_1>
            <table>table_1</table>
        </table_1>
        <table_2>
            <table>table_2</table>
        </table_2>
        <table_3>
            <table>table_3</table>
        </table_3>
        ...
    </entities>
   </module_mysql4>
..</config>
Run Code Online (Sandbox Code Playgroud)

然后通过模型在表之间动态切换?

和相关的:任何人都知道这些人的可能性和他们的本性是什么?我见过'实体','协会'和'项目' - thx

database config magento entity-attribute-value

5
推荐指数
1
解决办法
6306
查看次数

SQL:在保留约束的同时规范化数据库

假设我有以下表格:

     ____________________             ____________________
    |     Organisms      |           |       Species      |
    |--------------------|           |--------------------|
    |OrganismId (int, PK)|           |SpeciesId (int, PK) |
    |SpeciesId (int, FK) |?---------1|Name (varchar)      |
    |Name (varchar)      |           |____________________|
    |____________________|                      1
              1                                 |
              |                                 |
              |                                 |
              ?                                 ?
    ______________________        ____________________          _______________
   | OrganismPropsValues  |      |   SpeciesProps     |        |     Props     |
   |----------------------|      |--------------------|        |---------------|
   |OrganismId (int, FK)  |      |PropId (int,PK,FK)  | ?-----1|PropId (int,PK)|
   |PropId (int, FK)      |      |SpeciesId(int,PK,FK)|        |Name (varchar) |
   |Value (varchar)       |      |____________________|        |_______________|
   |______________________|                                             1
              ?                                                         |
              | …
Run Code Online (Sandbox Code Playgroud)

sql polymorphism database-design sql-server-2008 entity-attribute-value

5
推荐指数
0
解决办法
387
查看次数

在NoSQL中是否有类似系统的EAV模型?

我正在实现一个包含表中动态属性的数据库.类似于Magento电子商务网站的东西.我们知道Magento遵循MySQL的EAV模型,并且非常灵活地进行自定义.是否有基于使用NoSQL数据库的EAV建模实现的开源系统.很想知道使用NoSQL数据库应用EAV模型的最佳实践.或者是否有其他方法在NoSQL中实现.

magento nosql entity-attribute-value

5
推荐指数
0
解决办法
164
查看次数

如何在MySQL中存储键值对?

我是数据库的新手MySQL,特别是.假设我需要存储平面键值数据结构MySQL.每个数据结构都有一些必需的字段和许多可预先知道的可选字段,并且可能经常更改.

我需要通过其中一个必填字段检索所有数据结构,并可能删除它们.

所以我想将这些数据结构存储在这样的表中:(只是来自Internet的复制粘贴而不是工作代码)

CREATE TABLE my_data_structures (
   my_data_structure_id INT     NOT NULL,
   my_required_field1   VARCHAR NOT NULL,
   my_required_field2   INT     NOT NULL,
   PRIMARY KEY (my_data_structure_id)
)

CREATE TABLE my_optional_fields (
   my_optional_field_name  VARCHAR  NOT NULL,
   my_optional_field_value VARCHAR  NOT NULL,
   FOREIGN KEY (my_data_structure_id) REFERENCES my_data_structures(my_data_structure_id)
)
Run Code Online (Sandbox Code Playgroud)

这种方法有意义吗?如何定义primary key第二个表?

mysql sql entity-attribute-value

5
推荐指数
2
解决办法
6149
查看次数