问题标签 [database-relations]

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 投票
3 回答
791 浏览

mysql - 计算关系指向同一个键的次数

如您所见,“访问者”访问“资源”,它们之间的关系将在访问者资源中创建。

给定的“资源”有几个“标签”,具体取决于内容,它们通过 resource_tags 中的关系绑定在一起。

上面的查询输出访问者访问过的所有资源的标签名称。

现在我想知道一个标签被表示了多少次。

请考虑以下内容: 资源 1:tag1、tag2 资源 2:tag1 资源 3:tag2 资源 4:tag1

查询应输出:tag1, 3 tag2, 2

我尝试过以下方法:

但这对于cnt 来说似乎有异常不合理的高数字,并且不包括这个特定用户。

这甚至可以用 MySQL 吗?

0 投票
2 回答
326 浏览

ruby-on-rails - 如何公开 Mongoid 嵌入式集合?

我在我的 rails3 应用程序中有 mongoid 设置,并创建了 2 个模型。一个模型是用户,另一个模型是文章。

由于我每个用户都可以创建许多文章,因此我放了:

在 model/article.rb 文件中,并且:

在模型/user.rb 文件中。

现在,如果我通过“app_url/articles/random_article_id”访问文章,我会收到以下错误。

虽然我想保持关系,但我希望任何人都可以访问文章。我怎样才能做到这一点??

0 投票
1 回答
330 浏览

php - Doctrine 1.2 ORM继承类不能访问其父关系

当创建类 B 的对象并尝试访问表单 $B-> C->attributeOfC 抛出 Doctrine_Record_UnknownPropertyException 'with message' 未知记录属性/相关组件

代码中的一个简单示例:

0 投票
3 回答
1490 浏览

php - MySQL:从类别中获取帖子

我正在尝试学习 MySQL,所以我创建了一个小博客系统。

我在 MySQL 中有 3 个表:

posts

categories

post_category_relations

每个帖子可以有多个类别,它们的关系存储在 post_category_relations 中:

因此,当我访问 index.php?category=10 时,我想获取每个category10帖子与其子文件夹category12中的帖子相关的内容。

我未完成的 PHP 代码段

我知道这将需要高级 MySQL 技能,但感谢任何帮助!我已经在 PHP 中做了这个,但是我需要使用 4 个循环,这在 MySQL 中可能不是最好的方法,我只是还不知道如何:)

0 投票
1 回答
2561 浏览

ruby-on-rails - has_many 孩子和 has_many 父母

我试图找出模型之间的复杂关系。我有一个名为“概念”的模型,它有两种继承类型,称为“技能”和“职业”。基本上,这意味着每个概念都代表一个类别,但是当深入到层次树中时,一个概念也可以是一种技能或一种职业。

我正在通过使用 STI 来解决这个层次结构。所以我的概念表架构如下所示:

类型列确定概念是真正的“概念”还是“技能”/“职业”。但是现在的问题是以下关系:

编辑:

  • 一个概念可以属于一个父概念
  • 一个职业可以属于一个单一的父概念
  • 一个技能可以属于多个父概念
  • 技能没有孩子
  • 一个职业没有孩子

所以基本上你会有这样的东西:

我希望图片能清楚地说明我要解释的内容。目前我已经创建了以下迁移以尝试解决父子关系,但我不确定如何将其与关联映射...

我想要结束的是以下可能性:

希望这甚至是可能的......

0 投票
1 回答
1344 浏览

mysql - 在 InnoDB 中定义关系时的 CASCADE

我想知道在 InnoDB 中定义关系时什么代表 CASCADE?

我看到它与操作有关:ON DELETE & ON UPDATE。

我是否必须在表中的每个关系上将其设置为 CASCADE?

0 投票
1 回答
105 浏览

ruby - 如何在 Ruby/Rails 中抽象出与父类类似的验证/关系?

我有这些非常相似的课程:

和:

我也有一些我没有粘贴的方法可以提取到父级。我只需要知道父类中的类名。当我这样做时:

self.to_s它不起作用,因为CommercialDocument.

您将如何在父类中重构这种行为?我可以将东西放在一个模块中并导入它,但是整个文档层次结构几乎变得毫无用处。我已经有了文档的层次结构,所以如果可以的话,如果有办法,我想使用它。

0 投票
1 回答
210 浏览

hibernate - 在不了解 Hibernate 中的具体类的情况下映射关系

Hibernate 中有很多关于抽象映射的主题,但我找不到与我的情况相匹配的内容。

问题:

我的域模型由几个实体组成,它们不相互继承。例如:

  • 员工
  • 团体
  • 部门
  • 报告

在哪里:

员工 <-> 组 (n:m),员工 -> 部门 (n:1)

就这点而言,没有问题。但:

我希望能够将报告映射到员工、组或部门之一 (1:1)。(示例被简化为 Report 应该可以映射到更多不同的其他实体)。每个实体都必须驻留在自己的表中,因为不同的外部想要连接到数据库,并且模型不会因其他实体的一般表结构而改变。

我试过的

  1. 我尝试使用 Hibernate Inheritance 策略和 Table per Class,而 User、Employee 和 Department 是从新的AbstractEntity子类化的,共享父类的 ID 和 Name 属性。所以 User、Employee 和 Department 仍然有自己的表。我现在可以映射Report <-> AbstractEntity并且这有效。但是:正如人们所预料的那样,当有超过 20 个左右的报告时,这会导致严重的性能问题,因为 Hibernate 内部必须对所有子类表进行大量连接。

  2. 每个层次结构的单个表不是一个选项,因为表结构的变化(见问题)。此外,所有实体仅共享 ID 和名称作为公共属性。

可能的解决方案

一种可能的解决方案是自己实现映射。即我将Id和实体类存储在Report中。AbstractEntity 的 getter 现在可以根据保存的值来决定从哪个表加载并返回正确的实体。

但是:这里的问题是,我不能在实体类中做会话的东西,因为报告类不知道会话。此外,这会混淆逻辑和模型层。

解决方法是在 DAO 中编写某种包装器,从数据库中加载正确的实体并将其注入结果中。但这很容易出错,因为每个 DAO 方法都必须被覆盖。

问题

所以我的问题是:有没有办法以某种方式捕获或拦截从数据库中检索报告实体并在那里注入正确的 AbstractEntity 加载?

还是有另一种更优雅的方式来做我想做的事(必须是;))?

我在带有 DAO 的 Java EE 环境中使用 Hibernate 3.6,使用没有 EntityManager 的注释,如http://community.jboss.org/wiki/GenericDataAccessObjects

0 投票
1 回答
3609 浏览

ruby-on-rails - Mongoid(Rails)中的两个 1 - N 关系

场景是:

一个帐户如何给另一个帐户评分?这会导致帐户上有两个列表。我评价过的人和评价过我的人。(my_ratings 和 rating_given)

这归结为:

多个 1 - N 关系到同一个实体如何在 Mongoid 中工作?

在 Mongoid 的文档中,它说您可以使用has_many并将belongs_to实体链接在一起。

我目前在帐户上有这个

这在评级

文档没有涵盖这种情况,所以我认为您必须使用 :as 参数来区分两者。

这甚至远程正确吗?

0 投票
1 回答
208 浏览

database - 组织数据库表 - 大量属性

我有一个数据库,其中存储了一些用户。每个用户都有自己的帐户设置、隐私设置和许多其他要设置的属性。这些房产的数量开始增长,我最终可能会拥有 30 个左右的房产。

到现在为止,我曾经将它保存在“UserInfo”表中,将 User 和 UserInfo 关联为一对多(记录所有更改)。把它放在一个“UserInfo”表中听起来不太好,至少在数据库模型中,它看起来很乱。解决方案是什么?

将隐私设置、帐户设置和其他设置“组”分隔在单独的表中,并且在 UserInfo 和每组设置表之间具有 1-1 关系是一种解决方案,但是在检索数据时会不会太慢(或慢得多)?我想所有数据都不会同时显示在一个页面上。因此,也许与每个表建立一对多关系也是一种解决方案(分别保存每个组的日志)?