blog.bouzuya.net

2020-11-03 bouzuya/rust-social-bookmarking ユースケースの列挙をほぼ完了した

文化の日。

bouzuya/rust-social-bookmarking 。初期バージョンにおけるユースケースの列挙をほぼ完了した。それぞれのユースケースで使用するエンティティとリポジトリのメソッドの記述に入っている。

設計メモ。

ユースケースにタグを含めていない。現状はエンティティからも削除している。最初期の ERD では users & bookmarks & tags & taggings としていたのだけど tag & tagging はブックマークを整理するための補助的な情報であってコアではないと判断して削除した。

ページというエンティティの追加を検討している。「ソーシャルブックマークとは何か」 (2020-10-29) を通じてユーザー間のブックマークの共有の重要性を認識した。その結果としてブックマークの url を表すエンティティをコアに含めるべきだと考えている。これを「ページ」にしようと思っている。

ページの存在によってブックマークの位置づけがやや変わる。現状は user -> bookmarks という一対多関連になっている。これが user -> bookmarks <- page というユーザーとページの多対多関連を解決するための連関エンティティになる。

まだページに関するユースケースはまったく追加していない。……というかページはユーザーによって直接操作されるものというよりは集計ないし操作の副産物的に出てくるんじゃないかと思っている。追加するとしたら参照操作が出てくると思っている。