ユーザ毎にブックマークを管理するウェブサイトをつくるとします。
そして各ユーザのブックマークには、ユーザ毎に管理された連番を付加することとします。

以下のようにテーブルを設計しました。
usersテーブルのbookmark_last_noがそのユーザで最後に使用されたブックマークの連番、
bookmarksテーブルのnoがそのブックマークに付加された連番に当たります。

create_table :users do |t|
 t.column :user, :string
 t.column :bookmark_last_no, :integer
end

create_table :bookmarks do |t|
 t.column :no, :integer
 t.column :user_id, :integer
 t.column :url, :string
end

このように設計したのですがもっと綺麗に出来る設計はあるでしょうか?
また、この設計で良い場合、
bookmark_last_noをインクリメントするのはModelで行うべきでしょうか、
それともControllerで行うべきでしょうか。
どなたかアドバイスしていただけると嬉しいです。。