- http://www.martinfowler.com/eaaCatalog/singleTableInheritance.html
- http://api.rubyonrails.org/classes/ActiveRecord/Base.html#class-ActiveRecord::Base-label-Single+table+inheritance
- Message
- GoodMessage(Messageを継承)
- BadMessage(Messageを継承)
Message.create(title: 1)
GoodMessage.create(title: 'good', good: 111)
BadMessage.create(title: 'bad', bad: 222)
mysql> select * from messages;
+----+-------+-------------+------+------+
| id | title | type | good | bad |
+----+-------+-------------+------+------+
| 1 | 1 | NULL | NULL | NULL |
| 2 | good | GoodMessage | 111 | NULL |
| 3 | bad | BadMessage | NULL | 222 |
+----+-------+-------------+------+------+
子クラスでデータを保存すると、type
にクラス名が自動で入る。