履歴やウォッチリストを実装する際、DBにはそれらのデータをどのように保存すれば良いのか


通販サイトのカート、動画サイトのウォッチリストや履歴などは、  
1ユーザーに対し、複数のデータ（カート内の商品,閲覧したページ）が結びつくかと思いますが、  
それらはどのようにDBに保存し、取得すればいいのでしょうか？

配列で保存、と思ったりしましたがよろしくない気がしました（なんとなくですが...）

> 環境  
>  -MySQL5.6  
>  -Play framework2.3  
>  -Scala2.11




通販サイトに限った話になってしまいますが、[こちら](https://github.com/EC-CUBE/ec-
cube/tree/eccube-3.0.0-beta/docs)でEC-CUBEのER図が公開されています。  
日本では有名なECのプラットフォームだと思いますので参考にしてみては如何でしょうか。  
※余計なお世話かもしれませんが、judeファイルは[astah* community](http://astah.change-
vision.com/ja/product/astah-community.html)で開けます。

また、動画の閲覧履歴のような永続保存しなくてよさそうだったり、ACIDを強く意識する必要のない情報なら、[NoSQL](http://ja.wikipedia.org/wiki/NoSQL)を検討してみても良いんじゃないかと思います。




通販サイトに限った話になってしまいますが、[こちら](https://github.com/EC-CUBE/ec-
cube/tree/eccube-3.0.0-beta/docs)でEC-CUBEのER図が公開されています。  
日本では有名なECのプラットフォームだと思いますので参考にしてみては如何でしょうか。  
※余計なお世話かもしれませんが、judeファイルは[astah* community](http://astah.change-
vision.com/ja/product/astah-community.html)で開けます。

また、動画の閲覧履歴のような永続保存しなくてよさそうだったり、ACIDを強く意識する必要のない情報なら、[NoSQL](http://ja.wikipedia.org/wiki/NoSQL)を検討してみても良いんじゃないかと思います。

