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_idcustomer_id(payjpから引っ張ってきた登録したカード情報に紐づくid)

この3つの情報がデータベースのcredit_cardsテーブルに保存される。

 

そうすると次に考えるのが、payjpにもカード情報を保存するテーブルが存在していて、そこに16桁のカード情報、セキュリティコードとかが保存されるということ。

このテーブルはきっと私が作成するんじゃなくて、自動でpayjpに登録されるんだろうな。ものすごくそうであって欲しい。調べないとよく分からないなぁ。

データベースにも保存しちゃダメ(法律上)、サーバーにも情報を漏らしたらダメ、だからpayjpのような決済代行サービスが存在するんだな。

そして商品を購入するたびに、カード情報登録時に発行されたトークンを永続化するコードや、各idのリレーションを示すコードを、該当のファイルに書いていかなければならない。よく寝て、頭の中しっかり整理されますように。

-------------------------------------------------