问题标签 [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 回答
1642 浏览

ruby-on-rails - Mongoid:nil:NilClass 的未定义方法“名称”,即使它存在

在使用 Rails 3.1 和 Mongoid 处理一对多关系时,我一直在为 nil:NilClass 定义未定义的方法“名称”,即使我肯定它存在。要么这是一个愚蠢的错误,要么是 Mongoid 出了点问题。让我们详细说明:

我不断收到此错误:

当我尝试在控制台中重现它时,它似乎工作得很好。真是让人摸不着头脑。。

以下是相关地方的代码:

0 投票
1 回答
25609 浏览

python - 使用 sqlalchemy 的复合键关系

我有这个简单的 Author - Books 模型,但找不到将 firstName 和 lastName 设为复合键并关联使用它的方法。有任何想法吗?

0 投票
1 回答
2335 浏览

database - 复杂的数据库关系(联结表)

我的问题是关于将两个联结表合并为一个的想法,用于类似相关的表。请阅读以了解我的意思。另请注意,这确实是我面临的一个问题,因此与这个论坛有关。这只是一个具有广泛影响的话题,如果您愿意的话,我希望能引起各专业人士的更多参与,以获得更好的“最佳实践”普查。

我有这个相当具有挑战性的数据库设计问题。我希望这将是一个许多人可以贡献和学习的维基。为了使这更容易,我创建了一组图形,并将问题分解为 1) 过程和 2) 结构。

工艺步骤

  1. 提出了文档(出版物)的请求(DocRequest)。
  2. 如果所述出版物不存在,则创建新出版物。
  3. 运行日志 (StatusReport) 会保留以了解满足请求的进度。

注意:对于任何给定的出版物,可能有许多 DocRequests 和 StatusReports(包括更新)

数据库结构

注意:DocRequest 和 StatusReport 表都有许多字段和支持表,未在附图中显示。此外,特定的出版物是那些表中所有记录所属的主记录。

--当前实施-- 在此处输入图像描述

注意:这种设计的主要缺陷是,每当您创建新的 DocRequest 和 StatusReport 记录时,您还必须在 Publications 表中创建一个新记录(其作用类似于联结表),但这也会创建一个新的 Publication结果。这不是期望的行为。

--典型实现--(对于这种类型的关系) 在此处输入图像描述

注意:这没问题,并且可能是理想的,但处理对 DocRequest 和 StatusReport 表的更新,独立地将它们链接到它们所属的出版物。

--我的首选实现--(对于这种特殊情况) 在此处输入图像描述

注意:我在这里的想法只是将双联结表合并为一个。在这种情况下,只要 DocRequest 或 StatusReport 发生插入,联结表就会获得一条新记录。我可能会用触发器来处理这个问题。

讨论

现在进行讨论。如果您认为这是一个坏主意,我想从我的数据库开发人员那里知道,以及由此可能产生的问题。我认为记录的净数量应该与两个单独的联结表相同,并且实际上通过节省额外的 ID 列来使用更少的空间。:)

让我知道你们的想法。我真的很想让很多人参与这个讨论。干杯! :)

0 投票
2 回答
799 浏览

histogram - 关系 R 上的自连接操作的估计大小,给定 R 的直方图

查询优化器通常使用数据分布摘要来估计查询处理期间生成的中间表的大小。一种流行的此类汇总方案是直方图,其中输入范围被划分为桶,并保持每个桶中落入的元组数量的累积计数。出于估计的目的,假设桶内的分布是均匀的。

下面显示了一个R关于离散属性 a 与域的关系的直方图[1..10]

自联接操作 R x R 的估计大小是多少

解决方案中给出的答案:B

答案是如何计算的?

0 投票
1 回答
5065 浏览

postgresql - 为什么我以 postgres 用户身份登录时只能看到 postgreSQL 关系或表?

可能重复:
postgresql 数据库所有者无法访问数据库 - “未找到关系。”

核心问题:有一个Django 网站,当我尝试运行pg_dump MY_DATABASE_NAME -cOx -E UTF8 > MY_SCRIPT_NAME.sql

运行脚本之前,我可以连接并且一切正常。

运行脚本后,我生活在一个痛苦的世界中,我试图通过使用在 PostgreSQL 中同时修改所有表中描述的各种方法检查和更改 MY_DATABASE_NAME 和表的所有权

似乎只有\dt在我的服务器上第一次以 postgres 用户身份登录后,我才能通过 MY_DATABASE_NAME 看到关系,如下所示:sudo su - postgres

当我 SSH 并在psql MY_DATABASE_NAME -U MY_NON_POSTGRES_USER 没有切换到 postgres 用户的情况下运行时,\dt' results in a没有找到任何关系的消息。

起初我认为权限或所有权是问题所在。我以服务器的 postgres 用户身份登录,并将 MY_DATABASE_NAME 及其所有表的所有者更改为 MY_NON_POSTGRES_USER。

结果和以前一样。我的 postgres 用户显示了关系,但以另一个角色登录会导致“未找到关系消息”,并且我的网站抱怨说“关系 some_table 不存在”

为什么这会发生在我身上?

0 投票
1 回答
182 浏览

cakephp - CakePHP 与非传统数据库的关联

我们正在转换一个应用程序以与 CakePHP 2.0.3 一起使用。出于某种原因,我似乎无法在我的模型之间设置适当的关系。

这是一个例子:

  • 用户(id,petid,国家,picid,...)
  • 宠物(id、userid、picid、...)
  • 图片(id,白蛋白,....)
  • 专辑(id,userid,petid,...)

它们的含义如下: - 一个用户可以拥有多只宠物,但同时只能选择一只宠物(因此,用户中的petid)

- 宠物属于一个用户

- 宠物和用户可以拥有多张图片,但只有一张个人资料图片,因此 Pet.picid 和 User.picid

- 宠物和用户可以拥有多个相册

我在 CakePHP 中设置了我的模型,但由于数据库不遵循约定,我无法弄清楚它们之间要使用哪些关系。我尝试了以下方法:

  • 用户
    -> hasMany(宠物)
    -> hasOne(图片)
    -> hasMany(相册)

  • Pet
    -> belongsTo(User) (工作正常,使用外键用户 ID)
    -> hasMany(Album)
    -> hasOne(Picture)

  • 专辑
    -> hasMany(图片)

---- 实现这个的逻辑?它要么属于用户,要么属于宠物-----

-> 属于(用户)
-> 属于(宠物)

  • 图片
    -> 属于(专辑)

我是 CakePHP 的新手,不知道怎么去这里。你有什么建议吗?

0 投票
1 回答
95 浏览

ruby-on-rails - 活跃的记录关系——谁需要它?

好吧,我对 Rails 查询感到困惑。例如:

我们现在可以这样做:

或者

如果有很多附属品,我们会得到很多额外的选择:

并且(原文如此!):joins使用 everySELECT加倍!

从技术上讲,我们云只是这样写:

结果完全一样!(因为我们声明了关系)。将所有数据保留在一个查询中的方法是删除关系并使用“LEFT OUTER JOIN”编写一个大字符串,但仍然存在将数据分组到多维数组中的问题以及类似列名的问题,例如id

做错了什么?或者我做错了什么?

更新:

好吧,我有那个字符串Place Load (2.5ms) SELECT "places".* FROM "places" WHERE ("places"."id" IN (3,444,222,57,663,32,154,20))和一个一一选择的列表id。奇怪,但是当我在each范围内执行此操作时,我会得到这些单独的选择:

标记a.place的是产生这些额外查询的位置。

更新 2:

让我做一些数学运算。在控制台中,我们有:

出来:1.8ms 与 4.1ms,相当令人困惑......

0 投票
1 回答
3991 浏览

c# - 在数据集中寻找外键

有没有办法查找foreign keys数据集中的所有内容?

我知道有一种方法可以查找所有关系:

有类似propteryforeign keys吗?

0 投票
1 回答
1114 浏览

c# - EF 4.3 代码优先一对一关系

谁能告诉我下面这段代码有什么问题,因为我在获得一对一关系时遇到问题,首先使用 EF 4.3 代码。

一直在尝试各种事情,添加外键属性,(取消)注释一些 id,以下示例。结果总是:数据库中的 ID 不正确,或者它没有创建数据库。

提前致谢。

0 投票
1 回答
2634 浏览

sql - 带有松鼠的 SQLite 数据库:没有关系

我有的:

我有一个带有连接的 SQLite 数据库。这是 sql 创建代码的一小部分(目的地和 log_entries 表之间的多对多连接):

你可以看到,我已经定义了与外键的关系。

对于 Firefox 插件中的数据库,SQLite 管理器我在“On-connect SQL”选项卡中设置了以下键:*PRAGMA foreign_keys=ON;*

我的问题是什么: 因为我不擅长编写复杂的 SQL 查询,所以我必须在图形工具中设计查询。我的决定是 SQuirreL。我已经下载了 SQLite 的 JDBC 驱动程序。

在 SQuirreL 中,当我将所有表格发送到图表时,我看不到它们的关系。在查询生成器工具上也是如此。有没有人使用 SQLite-Squirrel 组合的经验?是否存在任何用于 sqlite 的替代查询设计器工具?或者最简单的方法是在 Access 中运行 SQL 创建者脚本,然后在那里设计查询?