2012-01-16 4 views
0

私はウェブ開発を学んでおり、現在PHPmySQLで作業しています。私はデータベースのコンセプトにまったく新参者です。どのようなときにテーブルを作成するか、データベースを作成するかを決定します。私はいくつかの提案と助けが必要です。より良いオプションを選択する1)ファイルを使用するか2)データをデータベースに直接

私はこれらの疑問を親切に私に明確にしています。私はこのことにあまり気づいていませんが、どれくらいのセキュリティがPHPファイルのコンセプトによって提供されていますか。 PHPのファイル概念を使用する上で害はありますか?

私はユーザーに入力したデータをサーバー上のテキストファイルに保存したい、データがメッセージなどのようにデータに保存したい、データをファイルに保存したかったそのディレクトリパスをデータベースに保存します。データを取得するだけで、データベースからファイルパスを取得し、それをテキストファイルから取得します。これは良いことか悪い考えですか?またはユーザーデータをデータベース自体に保存する必要がありますか?

同様に、画像や写真のパスをデータベースに保存してから、パスを<img>タグに入れたいと思っています。この質問で私を助ける人はいません。助けが大変ありがとうございます。

どうすればいいのですか?

+0

私は自分の最初のウェブサイトを作っていたときに自分自身に質問しました。私の答えは - MySQLを使用しています。 – oyatek

答えて

2

に合わない場合がありますイメージをファイルシステムに格納し、データベース内のパスをファイルシステムに格納します。結局のところ、ファイルシステムはファイルを格納するのに最適です。あなたはstore the file as a binary field in the databaseだから、それは確かにオプションです。いずれにせよ賛否両論があります。個人的には、私はファイルシステムにファイルを保存することを好む。

私はあなたがこれを行っている場所がわからないんだけど:

データが彼の情報のようないくつかのメッセージか何かのようなものかもしれませんが、私は、ファイル内のデータを保存し、そのディレクトリを保存したいですデータベースのパス

このデータがファイル内にある必要がある特定の理由はありますか?または、データベースに格納する方法がわかりませんか?データが構造化され、一貫して整理されていれば、リレーショナルデータベースに保持しない理由は想像できません。 (そして、それが構造化されていなくても、この種のファイルシステムではstill look into a databaseでしょう)。

イメージやその他の非リレーショナルリソースは一般にファイルにバインドされているため、ファイルに保管してください。しかし、それ以外の理由でテキストファイルにテキストを保存しているのであれば、データベースを使用することをお勧めします。

+0

データベース内のvarcharの最大長は何ですか?ユーザーが入力した入力が不明であるため、テキストファイルを選択しました。 – niko

+0

@niko:「longtext」は最大で32バイトです。これは4GBのテキストです。 'varchar'自体が65,000文字以上の文字を信じるようになることがあります。これはユーザ入力テキストのためのものです。詳細はこちら:http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html本当にフリーテキスト入力ですか?あなたが「自分の情報のようなもの」と言うとき、私は構造化されたユーザープロファイルやそのようなものをもっと描いています。 – David

+0

はいあなたの右の彼の情報ありがとう、あなたは私を大いに助けました! – niko

1

PHPは、基礎となるファイルシステムと同じ程度のセキュリティしか提供していません。しかし、ディスクにファイルを置いて、dbにパスを保存するのが従来の方法です。

+0

それを行う最善の方法は何でしょうか教えてください。 – niko

+0

あなたは正しい道にいると思います。ファイルが(直接リンクを防ぐために)Webサーバーにアクセス可能なパスにないことを確認し、続行します。保存したときに名前を変更/エイリアスすることもできます。 – ethrbunny

0

データベース内のファイルは、一般的には最適な解決策ではありません。しかしそれは、データベースが関係する限り、不透明なブロブであるバイナリ(例えば、画像、zipファイルなど)を格納することについて人々が話していることが主な原因です。

テキストファイルの場合、とりわけ小さなファイルでは、SUBSTR()のタイプマッチング/検索によってもDBにはまだまだ使用できます。したがって、DBに格納することが理にかなっているケースです。

0

良い経験則ここにはあります:

  • それが何かあれば、DBは(テキストなど)「理解」、 DBに格納する - あなたは、後でフルテキストインデックス作成をお勧めします、検索、テキスト変換、何でも。
  • ていない場合(例えばイメージ)、親指のすべてのルールなどのファイル

に格納し、これは、またはそれが作る、画像やその他のファイル結合リソースについては人差し指

関連する問題