1については、多対多の関連テーブルとして実現できるかと思います。以下のサイトが参考になると思います。
http://d.hatena.ne.jp/shunsuk/20090323/1237806859
2についてですが、RailsであまりDTOを作るケースは少ないかと思います。複数テーブルのデータを取得する場合、それらのテーブルに関連があるのであれば、取得したActiveRecord経由で参照できるかと思います。
(↑のサイトの@entry.tagsとやってるように。)