【问题标题】: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
      相关资源
      最近更新 更多