问题标签 [entity-relationship]

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 投票
5 回答
315 浏览

database - 大多数表中的相同字段

在数据库原型中,我有一组字段(如名称、描述、状态),这些字段在多个功能不同的表中是必需的。

这些字段始终具有相同的最终用户功能,用于标记、显示、搜索、过滤等。它们不是外键约束的一部分。这应该如何建模?

我可以想到以下变体:

  • 每个表都获得所有这些属性。在这种情况下,您将如何命名它们?相同,在每个表中,或带有表名前缀(如 usrName、prodName)

  • 将它们移动到表属性中,将外键添加到“核心”表中,引用 Attributes.PK

  • 如上所述,但不是外键,而是在各自的核心表中使用 Attributes.PK 作为 PK。

0 投票
2 回答
3019 浏览

database-design - 如何在基于标签的组织中定义结构?

[原标题:有没有办法在基于标签的组织方法上强制建立关系结构?]

我有一些实体,它们有一系列属性。某些属性会影响实体可以具有的其他属性,许多属性被组织成组,并且有时实体需要具有来自某些组的特定数量的属性,或者可能具有来自某些组的一系列属性。

有没有办法使用数据库对这些标签到标签的关系进行建模,例如需求、分组、排除等,或者这只能通过编程的“业务规则”实现?理想情况下,我希望可能的标签及其关系易于配置,因此非常灵活。

我考虑的一种方法是拥有标签和可能的关系,然后你会得到一个标签-标签应用关系类型的表格,但这似乎是一种相当脆弱的方法。

那么,这是否可能以更严格的方式进行?如果可以,我将如何开始呢?

0 投票
4 回答
361 浏览

nhibernate - 如何在我的 API 中处理多对多关系

我有两个实体 Foo 和 Bar,它们之间存在多对多关系。

假设对于为什么 Foo 可能对多对多关系“负责”没有语义论据,但是我们任意决定 Foo 负责该关系(即,在 NHibernate 中,我们将 Bar 标记为 Inverse)

从数据库的角度来看,这一切都很好,但是我的实体 API 揭示了一个问题。

如果我们决定 Foo 负责这种关系,我如何在不创建甚至不应该存在的公共 Bar.AddFoo() 方法的情况下更新 Bar 中的关联集合?

我觉得我应该能够保持我的域模型的完整性,而不必在这样的操作之后从数据库中重新加载这些实体。

更新:受评论者启发的代码调整。

0 投票
4 回答
279 浏览

database - 一个表和其他一些表之间的最佳关系,每个表都取决于第一个表的 n 个数据集?

我有一个表可以保存各种内容类型的评论。这些保存在其他表格(新闻、文章、用户)中。我想知道连接这些表的最佳方法是什么?在以前的项目中,我为每种内容使用了第二个表格。他们持有映射到评论表 id 的某些内容的 id。因此,对于每条评论,我都有评论条目本身和一个“连接器”条目。另一种方法是对任何类型的内容使用单独的评论表。最后,两种方式都包含一些冗余缺陷。

那么我应该使用哪一个或者是否有一个解决方案?

0 投票
2 回答
3138 浏览

entity-framework - 实体框架 - 我如何使用实体关联?

当我的数据库中有具有 PK/FK 关系 (int) 的表时,并且当它们由实体框架设计器建模时,一切看起来都应该如此。我可以编写下面的代码,一切似乎也可以正常工作,但是当我运行代码时,我在 project.Status.StatusName 上收到错误,说对象引用未设置为对象的实例。我想我的印象是,当您填充父实体时,框架填充了关联实体。

0 投票
1 回答
611 浏览

entity-framework - 实体框架 - 如何在我的扩展类中使用实体关系?

我正在尝试扩展实体框架创建的部分类,以便我可以更轻松地使用下面代码中的对象(请让我知道是否有更好或更例外的方式来使用实体框架执行此操作)

但当然我得到了“对象引用未设置为对象的实例”这一行:Me.Status.StatusID = proj.Status.StatusID

扩展部分类时如何传递相关的实体值?或者我只是在这里离基地很远,并且有一种更简单的方法来做我想做的事情?

0 投票
1 回答
404 浏览

xsd - 如何在 XML 中反映子类之间的关系

如何在 XML 中定义子类之间的关系,例如一个类研究人员有两个子类 Paper 和 author 。

0 投票
8 回答
2423 浏览

sql - 表示单个 SQL 表中记录之间的多对多关系的最佳方式是什么?

我有一个这样的 SQL 表:

更新:我正在更改示例表,因为原始数据(州、城市、学校)的现有分层性质掩盖了项目之间需要简单关系的事实。

我想定义这些实体之间的双向关系,以便查看一个实体的用户可以看到所有相关实体的列表。

关系由最终用户定义。

在数据库中表示这些关系并随后查询和更新它们的最佳方式是什么?

我看到的一种方式...

我的直觉是这样的关系表:

既然如此,给定提供的 entity_id 为 4,如何获取所有相关记录,即 1 和 5?

同样, entity_id = 1 的查询应返回 2、3、4 和 5。

感谢您抽出宝贵时间,如果我能澄清这个问题,请告诉我。

0 投票
4 回答
17353 浏览

sql - MySQL:查找不参与关系的行

我有两个表:“电影”和“用户”。它们之间存在 n:m 关系,描述了用户看过的电影。这是用“看过”的表格来描述的 现在我想为给定的用户找出他没有看过的所有电影。我目前的解决方案是这样的:

这工作正常,但似乎不能很好地扩展。有更好的方法吗?

0 投票
1 回答
748 浏览

hibernate - 如何从 EJB3/JPA 中的集合中急切地获取单个“默认”实体

我有一个带有多个电话号码的 Person 实体。

现在我想为急切获取的 Person 实现一个“获取默认电话号码”方法。此默认电话号码是 phoneNumbers 集中的电话号码之一。有没有办法做到这一点?

我试图实现这一点的原因是在一个页面上列出了这个默认电话号码,该页面列出了数据库中的“所有”人员。

作为一名 JPA 初学者,我最初使用以下方法进行了尝试:

但这当然会导致列表页面非常缓慢。

那么有没有办法定义一个瞬态属性,该属性根据某些查询从实体集合中获取单个实体?我使用 Hibernate 作为我的持久性提供程序。