问题标签 [table-relationships]

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 投票
4 回答
18940 浏览

codeigniter - Code Igniter 模型与模型之间的关系

在 CI 中,如何将模型相互关联?我现在有四个模型,Users、UsersDepartment、UsersToDepartment、UserStatus,我需要加入这四个模型才能获取所有数据。

我的控制器中有这段代码可以从用户表中选择所有用户数据:

Users表中保存的user_status只有status_id,所以我需要连接到UserStatus表来获取users_status_id的等效名称。我需要知道用户所属的组列表。所以我需要根据Users.userid从UsersToDepartment表中获取。然后在 UsersDepartment 表中获取等效的组名。请参阅我的图表以进一步解释。 在此处输入图像描述

我知道在原生 PHP 中,这可以通过使用 join 来完成。在 CI 中是如何做到的?

我知道yii,你可以这样做

CI也有可能吗?

0 投票
1 回答
948 浏览

aggregate-functions - 跨多个表的 Django 查询中的表达式聚合

是否可以从Django ORM 查询中的相关表中计算字段表达式(例如:减法)的聚合(例如:总和) ?

有关我要实现的目标的完整示例,请参阅此工作SQL Fiddle。我把它分解成两个问题(另一个在这里)。在这种情况下,我有一个Sequence表示数字序列的模型,以及一个Part表示此序列中的“链接”的模型:

因此,每个Part代表一个delta,它是序列中两个值之间的差异。我有一组(不连续的)部分,想计算这些增量的总和。像这样的东西:

但是在单个查询中(原因是我想将其用作更复杂查询的子查询)。在 SQL 中很容易做到这一点:

我不知道如何使用 Django ORM 来做到这一点。我可以为单个值做到这一点:

但不适用于涉及多个值的表达式。F() 尚不支持使用,所以我正在寻找另一种方法。我还查看了这个问题,这也是关于聚合中的表达式,但接受的答案(使用extra)不适用于我的案例 AFAIK,因为我感兴趣的字段不在同一个表中,而是在一个相关的表中.

这是一个 SSCCE,如果有人想尝试一下:下载浏览它具有与上面链接的SQL 小提琴相同的模型和数据。

0 投票
1 回答
110 浏览

mysql - 对于这个 CakePHP 应用程序,我的模型关系应该是什么?

我无法弄清楚如何构建它。这是我的应用程序:

这是一个游戏网站...说游戏是“单词搜索”、“数独”和“填字游戏”。

每个游戏都有很多谜题。所以有 100 个左右不同的单词搜索可以玩,100 个左右不同的数独游戏等等。

每个游戏也有许多模式。因此,每个单词搜索有 5 种左右的方法(定时、不定时等),5 种玩数独的方法等。

每个游戏模式拼图组合都有许多高分。因此,如果您定时玩 wordsearch #3,则会出现某个高分表。如果您玩同一个不计时的谜题,则会出现不同的高分表,如果您玩 #4 计时,则会出现第三个高分表,依此类推。

最后,每个高分都有一个用户。

我最初的制作方式是每个游戏都有很多谜题和模式,每个谜题都有很多高分,每个高分都有一个用户。正如您可能看到的那样,这没有多大意义,因为为什么高分属于拼图,而不是模式?当我显示高分时,我会显示游戏->拼图->高分,并添加高分模式=当前模式的条件。我没有理由需要有条件,因为关系很清楚。

所以这就是我所拥有的:

我意识到构建这个的更好方法是与谜题和模式建立 HABTM 关系。所以每个游戏都有很多mode_puzzle,每个mode_puzzle都有一个mode,一个puzzle,还有很多highscore。

所以可以修改为:

这样做的问题是,现在当我想向游戏添加新模式或向游戏添加新谜题时,我必须处理这个我必须手动创建的繁琐新表,即使它应该可以在不创建整个新表的情况下建立这种关系。对于每款游戏,任何模式都可以搭配任何谜题,那么为什么我必须手动创建这个表格呢?

人们建议使用 bake 但从我所见 bake 自动生成模型,但我需要表本身自动生成。

我有一种感觉,解决方案与连接或其他东西有关,但我对 MySQL 连接或 cakephp 如何处理它们或类似的东西没有经验。人们还建议说每个拼图有很多模式,每个模式都有很多高分,但我不想这样做,因为每个拼图有很多模式或每个模式有很多拼图之间没有区别......而且我正在缓存整个结构,所以如果我必须为每个谜题重复每种模式,反之亦然,数组会变得很大。有没有人可以解决这个问题?

0 投票
1 回答
29 浏览

mysql - MySQL 约束/级联:这可行吗?

我有一个表 - 线程 - 和另一个 - 帖子。

每个线程就像一个主题,帖子是回复。如果一个话题被删除,所有相关的帖子都需要被删除。

所有帖子都有一个 id 和一个 thread_id 字段。这就是我所拥有的,只是想知道这是否正确。

这需要反过来吗,还是完全错了?

0 投票
1 回答
1040 浏览

php - Laravel Eloquent ORM:使用 belongs_to() 的一对多问题

我在访问 Laravel 中的关系时遇到问题。与这个问题相关,我有两个表,messages并且users.

messages表如下所示:

users表如下所示:

和列都是整数,对应于user_from发送消息的用户(主键)或消息发送给的人。user_toid

Message我的模型的相关部分如下所示:

User我的模型的相关部分如下所示:

在一个视图中,我试图访问写消息的用户,编写如下代码:

Trying to get property of non-object这会在那一行引发错误。我知道该$message对象已定义,因为除user_from和之外的所有其他属性user_to都已定义并完美打印出来。我已经多次阅读文档,但我无法弄清楚我在这里做错了什么......有人坚持吗?这似乎是一个教科书示例,但它不起作用。

我将数据传递给视图的方式是:

0 投票
1 回答
1865 浏览

foreign-keys - 表之间的基数和关系

有一个名为 的表Department,其中显示了大学的各个部门。
还有一个名为 的表Branch,显示了各个分支(如电气、计算机科学、机械、汽车、法律、文学等)

条件:

  1. ADepartment可以有任意数量的Branches。
  2. ABranch可以关联到 single Department

Department这意味着:之间的基数Branch是“一对多”。

现在的问题是,在这种情况下,如果我将dept_id(表的属性:)Department作为主键。我如何能够关联多个branch_id(表的属性:)Branch,因为如果我这样做,我可能会违反其dept_id自身的主键条件。

如何处理基数和使外键齐头并进?

0 投票
3 回答
1503 浏览

php - Mysql 一对多的关系。按第二个表中的行数排序

我在 php 和 mysql 中创建了一个投票系统。当用户对 id 进行投票时,会在引用 FK media_id 的“votes”中插入一条记录。然后,当我显示条目时,我使用此查询来获取每个条目的票数:

这很好用,但我希望能够按他们拥有的票数对结果进行排序。最好只使用一个查询。我怎样才能做到这一点?

这些表的结构如下:

谢谢!

0 投票
2 回答
294 浏览

mysql - 多态关系向后查询laravel 4

我一直在网上搜索答案,但没有找到任何答案,所以这就是问题所在:

我有 3 张桌子:

活动 锦标赛 联赛

事件表:id eventable_id eventable_type(联赛或锦标赛)

锦标赛表:id 名称

联赛表:id 名称

我想要做的是获取名称 = 事件名称的事件。

我试过了:

没有任何成功。我试过了:

$event = Events::eventable()->where('name', '=', $event_name)->first();

没有成功,我尝试了很多不同的方法,我就是想不通....

谢谢,阿拉

0 投票
1 回答
1360 浏览

sql - MS Access - 通过存储的 ID 链接到记录

我在 Access 中设置了几个表,如下所示(请原谅稍微多余的示例内容):

表 1 是包含记录且不检索其他信息的基表。例如,它可以存储某人的名字和第二名,以及自动编号 ID。

表 2 包含的记录,除其他外,还包含一个链接到表 1 的字段并存储其中保存的一条记录的 ID。通过查找向导,我可以选择使用表 1 中的所有字段,将表 1 记录的 ID 存储在表 2 字段中,并在表单的组合框中显示名字和第二个名称,以便更直观地选择记录。

在表 3 中,我需要存储表 2 中的一条记录的 ID。但是,我还想在表单组合框中再次显示存储 ID 的相关记录(在表 1 中)中的名字和名字在表 2 中。例如,我不能选择使用表 2 中的 PersonDetails 字段,因为这只是将 ID 号放入组合框中 - 我需要执行以下操作:

这可能与 Access 中的查找向导有关,还是我必须查看查询或 VBA?

谢谢。

0 投票
3 回答
1434 浏览

ms-access - ms access中的多对多关系

我有一个数据库(用于宠物看护公司),其中包含以下表格:

  • 顾客
  • 紧急联络人
  • 电话号码
  • 电话类型

电话号码存储在一个单独的表中,以便为每位客户有效存储几乎无限数量的电话号码。除了主键之外,电话号码表还存储客户 ID 和电话类型 ID。我的问题是 - 允许紧急联系人与电话号码记录具有相同功能以向电话号码表“紧急联系人 ID”添加另一个字段的最佳方式是什么?或者我应该将紧急联系人存储在与客户相同的表中(并将其重命名为个人)?如果是这样,请告诉我如何在同一个表中的记录之间创建关系。

非常感谢,杰西卡