7/6本日の学び
今日の進捗状況
■できたところ(でもまだ○じゃなくて△の状態です)
READMEの修正をコードレビュー中
・主な修正点
- credit_cardsテーブルのカラムたち
- prefictures_id(active_hash)に訂正して追記
- shopping_daysテーブルの作成
やっぱりデータベースの考え方、楽しいけれど難しいけれど楽しいけれどの繰り返し。
active_hashの理解が乏しい中、えいやっとコードレビューの依頼をしたら、
やはりたくさんコメントつきで返ってきました^^;
chat-spaceの時からそうでしたが、i-dateさんのレビューは本当に分かりやすいです。
すごく丁寧で、自分が分からないところを言語化してくださるからなのかな。
コメントに質問を書くのはルール違反かもしれませんが、ここぞとばかりに
質問をつけて返してしまいました。
■つまずいたところ
・各idのリレーションをコードで書くとしたらどんなふうに?
・payjpで発行されたトークンの永続化を書くとしたらどんなふうに?
・payjpのテーブルはpayjp側で自動で作成されるんだろうか?
READMEでLGTMもらったら次にこの辺を詰めていかないといけません。
まだまだ調べきっていないので、明日も引き続き調べます。
分からないところを言葉にできただけ上出来、上出来と自分で自分を持ち上げつつ^^
-------------------------------------
(以下、自分のメモ書きです)
データベースにあるcredit-cardsテーブルには、
カード情報は一切登録しない設計になっている。じゃあ何を登録するのかというと
・user_id(これは私たちが作ったuserテーブルから引っ張っているid)
・card_idとcustomer_id(payjpから引っ張ってきた登録したカード情報に紐づくid)
この3つの情報がデータベースのcredit_cardsテーブルに保存される。
そうすると次に考えるのが、payjpにもカード情報を保存するテーブルが存在していて、そこに16桁のカード情報、セキュリティコードとかが保存されるということ。
このテーブルはきっと私が作成するんじゃなくて、自動でpayjpに登録されるんだろうな。ものすごくそうであって欲しい。調べないとよく分からないなぁ。
データベースにも保存しちゃダメ(法律上)、サーバーにも情報を漏らしたらダメ、だからpayjpのような決済代行サービスが存在するんだな。
そして商品を購入するたびに、カード情報登録時に発行されたトークンを永続化するコードや、各idのリレーションを示すコードを、該当のファイルに書いていかなければならない。よく寝て、頭の中しっかり整理されますように。
-------------------------------------------------