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でも使えそうな気がします。