【问题标题】:Modeling design question (Ruby On Rails)建模设计问题(Ruby On Rails)
【发布时间】:2011-03-01 22:13:46
【问题描述】:

我正在将一个 php 项目转换为 ruby​​ on rails。之前的项目使用mysql作为数据库,rails项目也会这样做。

在项目中有一个“步骤”的概念,一个课程可以有很多个。一个步骤有 5 种类型中的 1 种。 (测验、视频、文本..等)显然每个步骤所需的数据类型不同。

之前建模的方式是将所有步骤存储在同一个表中,并有一个字段保存步骤的序列化 php 对象。我认为这很糟糕,有几个原因...您不能真正查询序列化数据,这使得添加数据或更改对象的结构变得非常困难。

在数据库而不是对象中对这些数据进行建模是否更有意义?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    通常是的。 Rails 有两种可能的建模方法:

    1. 单表继承 - 几个模型继承自一个共同的祖先,存储在同一个表中。如果您的步骤彼此非常相似,那就太好了。在这里,您可以在父模型上调用 has_many

    2. 多态关联 - 关联宏有一个选项:polymorphic,它允许您在一个关联中拥有不同的模型(每个模型都可以有自己的表)。如果你们的步骤没有什么共同点,我会这样做。

    【讨论】:

    猜你喜欢
    • 2011-10-07
    • 1970-01-01
    • 2017-11-14
    • 2014-04-24
    • 2011-10-11
    • 2016-06-17
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多