プログラミング初心者です。
ECサイトにてテーブルに挿入上限数を設けたいです。
- 仕様
ユーザーごとにカートに追加できる商品は10種類
11種類目の商品をカートに追加しようとするとエラー画面が出て
「カートに追加できるのは10種類まで」という旨のエラーがでるようにしたい
- やったこと
Active Recordでカートテーブル内に存在する自分に紐付くレコード数をとりにいき、もし11以上であったら弾かれるようにした
DBの、user_idとproduct_idの組み合わせに一意制約をつけた
- 問題点
連続で異なる商品において「カートに入れる」ボタンを押した場合など、
2つ以上のリクエストが上限数の検証を通過することで、DBに11種類以上のレコードが保存されてしまう可能性がある
- 聞きたいこと
このような場合に必ず上限数以上のレコードが入らないようにするにはどうしたらいいでしょうか。
DB側でユーザーに紐付くレコードが10以下になるよう制約をつけるのかと予想していますが、
方法が分からず、、、、
ご教授お願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/14 05:24 編集