我有三张桌子。
这些基本上是" Class Table Inheritance"。
```
Invoices
--------
- id
- total_amount
- invoiceable (either a CardInvoice *or* a BanktransferInvoice)
CardInvoices
--------
- id
- fee_amount
- gateway_error
- ...
BanktransferInvoices
--------
- id
- ...
```
基本上这是一个has_one关系Invoice => BankInvoice/CardInvoice
。
但我必须从其他表中提取并将数据插入到这些表中。 (ETL的东西。) 所以我确实使用原始SQL来插入数据。
所以我怀疑" Polymathic型号"以上是干净与否,因为
首先, 必须插入元数据才能使其正常工作。 (例如Invoice_type)
其次, 无法应用约束。
第三, 直接加入不起作用。
所以我正在考虑改变指点方向。
Invoice <= BankInvoice / CardInvocie
有了这个,我可以使用直接连接,并检查约束。
现在的问题是,
使用第二种方法,如何在Rails 4.2中有效地使用BankInvoice / CardInvoice检索? (我是Rails的新手。我认为左外连接会很好。但添加的Invoice类型越多,开销就越大。)
或者您能否建议哪种实施方案更好,为什么会这样做。
谢谢,