質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Twig

Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。

Q&A

解決済

6回答

501閲覧

アカウント情報をDBではなく構造化テキストファイルで管理するのはありでしょうか?

kiwibird

総合スコア105

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Twig

Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。

0グッド

0クリップ

投稿2018/07/28 11:15

概要

現在、phpで会員制のサイトを制作しており、アカウントの保存方法について悩んでいます。
1日100アクセス位を想定しており、この程度ならDBを作成するよりjsonとかyamlでもいいのかなぁと考えています。

DBに関してはほとんど無知で、正規化?外部キー?というレベルです。

保存したい情報

  • ユーザID
  • メールアドレス
  • パスワード

accounts.json

現在は以下のようなjsonファイルでアカウント情報を保持しています。

json

1{ 2 "users":{ 3 "admin": { 4 "email": "admin@sample.co.jp", 5 "password": "adminpasswd", 6 }, 7 "guest": { 8 "email": "guest@sample.co.jp", 9 "password": "guestpasswd", 10 } 11 } 12}

教えてほしいこと

  • 今後の拡張性やメンテナンス性を考慮して、勉強しつつDBで運用したほうが良いのか?
  • 単純な構造ならjsonなどのテキストファイルでも十分なのか?

環境

  • Ubumtu 18
  • nginx
  • php
  • twig

どうかご教授お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

これは1日のアクセス数よりも、

  • 会員を追加・削除する頻度
  • 会員のメールアドレスを変更する頻度(会員が自分のメールアドレスを変更したら対応せざるをえない)
  • 会員のパスワード忘れに対応する頻度と方法(普通は対応せざるをえないし、暗号化していたら再発行するしかない。ちなみに今どきパスワードを暗号化しないのも避けたい)

といったところで評価するべきですね。

で、結論としては、他の方が書かれている通りDBを使った方が早いんではないかと思います。よい機会なので勉強しましょう。
アカウント情報をファイルで持つとしたら、一般向けのユーザの認証のないサイトで、管理者が数名で変更がなさそうな時の管理者アカウント情報くらいじゃないでしょうか(その場合でもDBで管理する方が多そうでが、basic認証+.htpasswdファイルとかでお茶を濁してる場合も少なからずあるはず)。

投稿2018/07/28 13:32

takahashim

総合スコア1877

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どうせ面倒なことになるから最初からdb使うべき

投稿2018/07/28 11:35

tekka

総合スコア514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

更新の時の排他制御をちゃんとやれば別に良いと思います。
あと、ファイルはドキュメントルートの外に置きましょう。

ただ、今後ともDBを一切使わないということで無ければ、どこかでは入門しないといけませんね。

投稿2018/07/28 11:22

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kiwibird

2018/07/28 11:31

ありがとうございます!排他制御をすっかり忘れていました。 DBに手を出すと泥沼に嵌りそうで...時間が取れたら少しずつ勉強していこうと思います。 ありがとうございました。
otn

2018/07/28 11:33

そうそうにベストアンサーを選ばず、もうちょっと多くの人の意見を聞いた方が良いと思います。
pepperleaf

2018/07/28 11:43

DBに手を出すと泥沼、、、は確かに当たっている気がする。 で私も逃げ回っていますが、この手のユーザー管理は DBが簡単と思います。 排他制御もあるし、重複チェック、セキュリティの検討 等々。これらを全て自前でやる事を考えたら、DBが楽ちんと言う気がします。
退会済みユーザー

退会済みユーザー

2018/07/28 11:53

text 管理で、生パスワードって^^; 実装では、生になっていないことを祈ります。。。
otn

2018/07/29 00:53

テキストファイルであるかDBであるかとは独立した話ですが、パスワード保存時には適切なハッシュ化が必要です。 フレームワークを利用すると、そのあたりを適切に面倒見てくれることも多いかと思いますので、素人が考えるより安全になります。そうなるとDBを使うことになるかと思います。
guest

0

  1. ユーザ数に依存するでしょう。

jsonファイルだとデータのentry(ユーザ数)は何千万もあれば、検索が非常に遅くならない?

  1. データの保全問題ーーーDBならそういう機構を持っていますけれども、jsonは大丈夫?

  2. データの暗号化など。。。

投稿2018/07/28 14:29

leilei

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

DBを勉強するか、DBの熟練者を使った方が安上がりで寿命の長いシステムになるでしょう。

投稿2018/07/28 14:28

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

皆様、たくさんのアドバイスありがとうございました!
皆様の意見を参考した結果、やはり無理してでもDBで管理していこうかと思います。

投稿2018/07/29 13:15

kiwibird

総合スコア105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問