【问题标题】:Rails table association with ENUM columnRails 表与 ENUM 列的关联
【发布时间】:2012-09-10 11:06:00
【问题描述】:

鉴于表uploads 包含4 个不同应用程序和用户之间的关系:

field    type
dogTag   int (foreign key to dvd)
app      enum
uploader int (foreign key to user)
mod      string
...

还有表dvds:

dogTag  int (primary key)
title   string
...

还有表users:

id    int (primary key)
...

如果 dvds 表和 Rails 中的 uploads 表依赖于 ENUM 列,如何正确构建模型关系?

使用 sql 我只是这样做:

JOIN uploads ON uploads.dogTag = dvds.dogTag
WHERE uploads.app = 'dvd'

但是不知道如何在 Rails 中创建这种关系,也没有找到很多关于这方面的信息。

谢谢

【问题讨论】:

    标签: mysql ruby-on-rails activerecord


    【解决方案1】:

    我对如何创建与枚举列的关系没有太多想法,但如果它是您的应用程序中的四个模型,并且有一个上传模型,那么您可以使用polymorphic association,ryan 有很好的railscasts

    【讨论】:

      【解决方案2】:

      你可以重新组织你的数据库以使枚举类型成为一个查找表,你可以创建一个非持久模型来实现它。

      问题是,如果您从模型而不是数据库开始,那么您将不会接近 mysql 的枚举类型,这就是为什么您很难找到很多东西的原因,您已经找到了低音。

      我的建议是摆脱它...

      【讨论】:

      • 是的,你说的很对。但在事情变得简单得多的时候,这似乎是一个很好的解决方案 :) 我将不得不看看如何摆脱它,问题是有一堆 PHP 代码依赖于该模型 sigh
      • 我自己从不喜欢它们,问题太多,收益太少。
      猜你喜欢
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多