第8回の課題お疲れ様でした。今回からフィードバックに参加します阿部です。よろしくお願いします!
前回からの課題に肉付けしていくスタイルはとてもいいと思います。課題のクオリティがとても高く驚きました。
もうSQLを使ったデータの出し入れはある程度習熟された事かと思います。正直粗探しをしないとフィードバックであまり言う事がないと感じました。
課題としては、光山さんのおっしゃる通りファイルの数が多くなっている点でしょうか。もう既に解決策も理解されているようですので大丈夫だと思います。
bootstrapなどのCSSフレームワークを使うと手軽にリッチなレイアウトにできる反面、bootstrapで使った感が出てしまうことや自身の理解と乖離してしまう事が多いです。
私はレスポンシブに対応するためのGrid Systemだけを上手く取り入れてレイアウトするようにしています。CSSフレームワークに煩雑な部分は任せてしまえば自分のレイアウトに専念する事ができるので、上手な付き合いができるといいのかと思います。
書籍の管理などであれば、Google Books APIsなんかを使ってみると面白いかもしれません
書籍検索APIであるGoogle Books APIsの使い方
下記のコードで書籍のデータ(表紙画像・あらすじ)なんかを取得できてしまうので結構便利ですよ。
$search_item = $_POST['search_item'];
$response = file_get_contents("https://www.googleapis.com/books/v1/volumes?q={$search_item}");
$result = json_decode($response,true);
DBに関してはユーザー個人のデータベースを作ると言うことはあまりありません。
光山さんの作ったものを例に挙げてみると、以下のテーブル設計が適切だと思います。
- Userの情報を管理するUsersテーブル
- Userと本の結びつきをするテーブル
- 本のデータを管理するBooksテーブル
- 本のカテゴリを管理するDictionariesテーブル
これまではUserの情報と本の情報のみのテーブル設計になっているかと思います。
これですと、複数のUserが同じ本の情報を登録するたびに重複データが出てきてしまいます。
そういった情報の無駄をできるだけ排除し、整合的にデータを取り扱えるようにデータベースを設計することを正規化
と言います。
今の段階では少し難しいとは思いますが、光山さんのレベルであれば正規化
にチャレンジして見てもいいのではないでしょうか。
GETとPOSTの違いについては使用用途を明確に分けるために存在しています。
詳細な違いについては以下の解説が分かりやすいと思います。
GETとPOSTの違いについて - Qiita