データベースの勉強したことをまとめました

Uncategorized
アプリ開発でデータベースを使う機会があり色々と発見があったので記憶が新しいうちにまとめておこうと思います。

データベースの難しい部分

どのデータを保存しておくのか設計する段階でよく考えないといけないと感じました。
例えば、アカウント情報を保存する場合、ユーザー名とパスワードは必須だとして、自己紹介文を必須にして情報量を増やすのか、それとも任意にして登録を容易にするのか。

またデータを保存して終わりではなく、後でデータを検索するときのことも考えておかなければなりません。
登録情報が被らないことはもちろん、データ分析するために職業欄などカテゴリーを設けておくこともあり得ます。

保存するデータを検索する視点から考えたことなかったので、新鮮な考えでした。

あとで保存するデータの種類を増やすと、今まで保存していたデータとの一貫性がなくなり修正するのが大変なので、できるだけ事前に決めておく必要があります。
どの情報を保存すべきかを想像できるためには経験値が必要だと思いました。

新しい発見

普段なにげなく使っている機能も、実装が必要だという当たり前の事実を何度も思い知らされました。

下記が面喰らった事実の数々です。

・データベースから引っ張り出してきたデータをそのまま表示するのではなく、見やすい形にしてから表示する。例えば日時など。

・保存しておくほどでもないが出力すると便利なデータは、それ用の機能がある。
例えばデータベースにアカウント作成日が登録されていて、そこから現在までの経過日数を表示したい場合、(現在の日付)-(アカウント作成日)を表示するように実装できる。

・データを検索するためにJavaScriptの地道な実装が必要。
split(‘,’).join(‘ ‘)などを使って送られてきた検索パラメーターを分割して、つなげ直すという処理をして検索用に整形しています。涙ぐましい。

・データを操作するリクエストによってURLが変わる。
例えば、田中さんが、人間失格のレビューを編集する場合、account/tanaka//books/ningen-sikkaku/のようなURLになったりします。

その他に発見したことなど

・データ一つ当たりに容量の制限がある。(MongoDBのみ?6MBの制限あり)

・ハッカーにデータベースをのぞかれた時のためにパスワードは暗号化して保存しておく。
パスワードの変更ができず、新しいパスワードの設定を求められたことがあると思いますが、あれはデータが暗号化されていてだれも元のパスワードを知ることができないためです。
なのでセキュリティ面ではちゃんと管理されているということでもあるそうです。

・ユーザーが再入会できるように、退会の処理はユーザーをデータベースから削除するのではなく、非表示にしておく。
わたしが学んだ教材では、それ用のパラメーター(active)のtrue/falseで表示/非表示を切り替えていました。データも大事なお客様です。

まとめ

データベースのことを勉強したら、自分のアカウントがどういう風に管理されているの気になってきました。
今後は検索したりアカウント作るときに技術者の存在が浮かびそうです。

コメント

タイトルとURLをコピーしました