问题标签 [dbix-class]
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.
database - 如何使用 DBIx::Class 建模 is-a 关系?
使用以下(简化的)MySQL 表定义:
作为DBIx::Class的新手,我想为数据库实体(计算机和打印机都是项目)之间的继承关系建模,但是使用提供的 belongs_to 关系类型,这似乎很尴尬,因为与基类的关联是没有隐藏,所以仍然必须为这两个类手动创建实体,并且在派生类中访问基类属性与访问它们自己的属性是不同的。
是否有一个优雅的解决方案可以让我说:
或(在获取的打印机行上):
?
perl - 如何在 DBIx::Class::ResultSet 上进行此搜索和 order_by
问题定义。
我有多个客户和多个用户。每个客户端都需要能够将自定义数据与用户、搜索和排序依据相关联。
数据库解决方案:
定义 customfields 表的表 Customfields。它有一个 id 和 name。它与 Userfields 表(又名“属性”)有 has_many 关系。
Userfields 表有一个 userid、customfieldid、content 和 id。它属于 Useraccounts 表(又名“useraccount”)和 Customfields(又名“customfield”)
我想要的建议选择语句:
这是一个实现并产生我需要的选择语句。
在这种情况下,它们可以是 select 语句中的 0 ... x sub select 语句中的任何内容,并且它们中的任何一个或没有一个可能想要被排序。
问题
如何通过 -> 搜索我的 dbix 类结果集来实现这一点,或者如何通过搜索我的 dbix 类结果集来实现相同的结果?
这是我通常从我的 Useraccounts 表中选择的方式,尽管我不确定如何从这里执行我想要的复杂语句。
谢谢你的时间。
-pdh
perl - 如何使用 DBIx::Class 计算查询次数?
我DBIx::Class
在 web 上下文中使用,我想显示执行的 SQL 查询的数量以及它们为呈现页面所花费的时间。
关于如何实施的任何想法?
sql - 查询以获取数据库中树的所有祖先/后代?
我有一个表指向同一个表(id, parent_id, data)
中的另一行(或为空)。parent_id
是否有标准方法来查询(1)某个id的所有祖先和(2)某个id的所有后代?
我也在做这个DBIx::Class
,所以如果有一个最方便的方法可以用那个模块(或其他模块)来做,我也很想听听。
编辑:澄清-所有父母=所有祖先,所有孩子=所有后代。
perl - 在 DBIx::Class 中使用自联接的组组
我试图了解如何使用 DBIx::Class。
如果我想要记录组,使得组本身可以成为组的成员,我可能会创建一个包含以下内容的模式:
如果我使用 DBIx::Class::Schema::Loader 转储此模式,我会得到以下关系:
群组.pm
GroupGroup.pm
我想我需要一个 many_to_many 关系桥,组表在两边,所以我创建了这个:
因为我对关系桥定义的理解是这样的:'accessor_name' => '相关表中 has_many 关系的名称','相关表中的 belongs_to 关系的名称'
当我尝试这段代码时:
设置 DBIC_TRACE 显示 SQL 为:
但我认为这条线应该更像:
如果有人建议我如何误解 many_to_many 关系桥并更正我的 many_to_many 函数定义,我将不胜感激。
perl - 为什么具有多重继承的 DBIx::Class 更新失败?
我有一个 DBIC 模式,其中所有类都使用一个公共基类和定义类。基类加载公共组件,并覆盖更新方法以便在审计表中记录变更集。定义类是从数据库生成的静态类。一个典型的类头看起来像:
在我添加并覆盖 User 类中的更新之前,一切正常。显然在基类中有覆盖,并且 User 类在某种程度上发生了冲突。我正在使用 next::method(@_) 调用下一个更新方法,但它总是挂起。
这是一个 CGI 应用程序。因此,当我点击“保存”时,浏览器会转动它的轮子,直到我点击转义来取消请求。此时,我的日志记录恢复了,它显示所有查询都在正确且快速地执行,但它在 User 类的末尾挂起,直到我在浏览器中点击转义后才会继续。
更新:这似乎是与催化剂相互作用的问题。自行运行时,此代码可以正常工作。但是,当从催化剂应用程序中执行时,它会失败。
perl - 如何确定正在加载 Moose 的模块是什么?
我试图找出我的 CGI::Application 中的哪个模块正在加载 Moose。我试图重载“require”,但我的语法似乎不太正确。如果有人可以清理以下代码,我将不胜感激:
基本上,这个脚本的问题在于它实际上并没有加载任何东西。当 CORE::require(@ ) 被调用时,它不会“做”任何事情。我尝试直接使用 $ [0] 将脚本名称传递给它,但这只会导致脚本死锁,直到它超时。
注意:上面的脚本是我的启动脚本的开头
perl - DBIx::Class::Schema::Loader 是否缓存其名字对象映射?
最近我们在数据库中添加了一个“audit_logs”表,经过一番挫折后,我意识到由于某种原因数据库中已经存在一个“auditlog”表。它没有被使用,所以我放弃了它。我从架构中删除了 Auditlog.pm 和 AuditLogs.pm 文件,然后重新生成。出于某种原因,DCSL 再次为“audit_logs”表创建了 AuditLogs.pm,即使不再存在与它发生冲突的“auditlog”表或 Auditlog.pm 文件。
我已经尝试了几乎所有我能想到的让它生成 Log.pm 但没有成功。我唯一能想到的是它正在某处缓存名字对象映射,我似乎无法重置它。
perl - 如何漂亮地打印 DBIx::Class 结果?
我想像这样漂亮地打印 DBIx::Class::ResultSet 结果:
我找到了 DBIx::SQLCrosstab::Format 类,但它似乎只适用于自己的查询。
perl - 使用 DBIx::Class 设置表与其自身的多对多关系
我正在将应用程序从Class::DBI移植到DBIx::Class并且需要帮助。我有一个T
带有主键 tid 的表和另一个ChildT
将一行关联T
到自身的多个(子)行的表T
。如何设置和之间的关系T
,ChildT
以便我可以找到T
. 以下是这两个表的精简版本:
tid
并且两者childid
都引用.id
T
谢谢!