【发布时间】:2014-02-16 04:45:24
【问题描述】:
我正在为企业构建一个 Ruby on Rails 应用程序,并将使用 ActiveRecord 数据库。我的问题确实与数据库架构有关,也是我应该在我的应用程序中组织所有不同表和模型的最佳方式。因此,我正在构建的应用程序将拥有一个电子商务企业的订单数据库,该企业通过 2 个不同的渠道销售产品,一个订阅服务,他们选择产品并以固定的月费销售,以及一个传统的电子商务渠道,其中客户直接为他们的产品付款。所以基本上虽然所有这些都被归类为订单模型,但有两种类型的订单:订阅订单和常规订单。
所以最初我想我会在我的订单表中对所有这些活动进行分类,并包含一个字段“类型”来指示它是订阅订单还是常规订单。我的问题是,我需要一堆特定于每种类型的字段。例如,transaction_id、batch_id 和 sub_id 都是只有当订单类型是订阅时才会出现的字段,反之,如果订单类型是常规的则不存在。
我的问题是,只创建两个单独的表,一个用于订阅订单,一个用于常规订单,是否符合我的最大利益?或者有没有一种方法可以使字段仅以 Type 字段为条件出现?我不想看到这么多 Nil 值,例如,如果订单类型是常规订单。
很抱歉,这个问题并不像它只是与最佳实践和组织有关的技术性问题。
谢谢, 晴天
【问题讨论】:
-
附带说明,避免将任何字段命名为“类型”。 ActiveRecord 会大吃一惊。
标签: ruby-on-rails ruby activerecord architecture