DynamoDBやSimpleDBのモデリングにはクラス図を使ってみたらどうだろうか #jawsug

先日発表されたAmazon DynamoDBをつかうアプリケーションを設計する時、モデリングをどうしようかと困っていたのですが、クラス図を使うといい感じに表現できそうです。

Developer GuideのUse Case 2を例に図を書いて見ました。

ER図を使って表現した場合

図はMySQL Workbenchを使って書きました。
この図には幾つか問題点があります。

  • HashKey, RangeKeyの表現ができていない
  • ThreadテーブルのTagsのような複数の値をもつカラムの表現ができていない
  • テーブル間の関係がよくわからない

クラス図を使って表現した場合

図はastah* communityを使って書きました。
この図は、ER図で表現した場合の問題点をすべて解消しています。

  • 各テーブルのHashKey, RangeKeyは何か
  • ThreadテーブルのTagsがStringの配列であること
  • ForumとThreadが1対多、ThreadとReplyが1対多であること

まとめ

ツールの問題という部分もありますが、クラス図なら型を自由に定義できるため、良い感じに表現できているのではないでしょうか。これはDynamoDBやSimpleDBに限らず、MongoDBやその他のスキーマレスなDBでも使えそうな気がします。