Activerecord,“foregin_key”必须是 2 个字段的组合

发布于 2024-08-05 20:58:20 字数 543 浏览 4 评论 0原文

我想要下面描述的 has_many 关系

class User < ActiveRecord::Base
  has_many :mcollections, :foreign_key=>'obj_id'
end

下面是表 mcollections 的定义

create table mcollections (
  id                     int            not null auto_increment,
  obj_id                 varchar(255)   not null,
  category               varchar(255)   not null,
);

:foreign_key 不是表 mcollections 上的单个字段。外键必须是 2 个字段的组合 (obj_id +category)。如何在 User 类中指定它?

I want a has_many relationship described below

class User < ActiveRecord::Base
  has_many :mcollections, :foreign_key=>'obj_id'
end

Below is definition of table mcollections

create table mcollections (
  id                     int            not null auto_increment,
  obj_id                 varchar(255)   not null,
  category               varchar(255)   not null,
);

The :foreign_key is NOT A SINGLE FIELD on table mcollections. Foreign key has to be a combination of 2 fields (obj_id + category). How can I specify this in User class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生生漫 2024-08-12 20:58:20

我不认为这里使用外键有什么意义。
外键应该是另一个表的主键。 obj_id 和category 都不能用作外键,因为它们不是主键的一部分。

I don't see the sense of using foreign keys here.
A foreign key should be the primary key of another table. Neither obj_id nor category could be used as foreign key because they are not part of the primary key.

调妓 2024-08-12 20:58:20

你不能用别的方法吗?

在 Rails 中使用多列外键不是最佳实践......

Cant you do it another way?

Its not the best practice to use multi-column foreign keys in rails...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文