【发布时间】:2017-12-01 19:41:10
【问题描述】:
我们必须创建一个请求系统,该系统将包含大约 10 种不同类型的请求。所有这些请求都属于我们应用程序的“会计”方面。因此,我们称它们为“会计请求”。
所有请求可能只共享几列,每个请求最多单独包含 20 列。
当我们开始必须执行非常复杂的连接或查询时,我们开始怀疑为每种请求类型分别设置表是否在速度方面是否实用,例如,将所有请求类型提取到单个表中然后对其进行排序.
也许只使用单表继承会更容易,因为它有一个类型列,我们将使用一个表来存储所有 10 种记帐请求类型。
您如何看待将 STI 用于如此多的多态关联和需求?
基本上,它会有这样的模型:
AccountingRequest
BillingRequest < AccountingRequest
CheckRequest < AccountingRequest
CancellationRequest < AccountingRequest
每个子类大约有 10 多个字段。
目前正在阅读有关多表继承here 的信息。在这种情况下,这似乎是符合我要求的解决方案。不过还不确定。
【问题讨论】:
-
请解释反对票,而不仅仅是反对票。在不知道这些谴责背后的原因的情况下看到这一点很烦人。
标签: ruby-on-rails ruby-on-rails-3 database-design relational-database single-table-inheritance