2009-07-10 16 views
0

私はMysql/PHPアプリケーションを持っています。私はそれをSASに売りたい。私は複数のデータベースを利用できるホスティング会社を考えています。彼らがログインしていたページが欲しいと思ってデータベースに持って行きます。私は同じ構造の多くのデータベースを持っています。私はそのフォルダにそれらを切り替える方法が必要です(私はそれらのためのCSSのようないくつかのコードを変更することがあります)とデータベースを操作します。 ログイン用にマスターテーブルを使用できますが、データベースに接続する方法はありますか?私はセキュリティが心配です。 例:3人の顧客がいるとします。 A B C 私はApacheサーバー上に3つのフォルダを設定し、そこにコードをコピーし、new_db_a、new_db_b、new_db_cのようなユニークなデータベース名を設定します。 これでログに記録されたときに、メモリ変数でそれを実行すると、彼は彼の所在地に移動します。彼はURLを見ることができ、簡単に別の手紙を代用して、別の企業データベースを運営することができます。複数のmysqlデータベースを設定する

私はこれを行うためにPerl、PHPなどを使用したいと思います。 これを行うにはどうすればよいですか?

+0

私はあなたがSaaS(Software as a Service)について話していると思っているので、私はあなたの質問を「sas」から「saas」に再タグ付けしました。私がこれについて間違っているとコメントを残してください。私はそれを元に戻します。 –

答えて

0

これは古典的な抽象化の問題です。基本的には、アプリケーションだけでなく選択画面からデータベース選択プロセスを抽象化する必要があります。

「問題空間」という用語を考えてみましょう。各アプリケーションには独自のデータベース(データベース)があり、さらに1つはアプリケーションのログインシステムです。このために別のデータベースを使用しても問題はありません。ログインごとにデータベース接続情報が関連付けられます。これは、ユーザがログインしていること(およびログインしているユーザ)と一緒にPHPセッションにデータベース情報を保存できることを意味します。

ここで、他のアプリケーションでは、セッションでデータベース情報を検索する方法を教えるために、データベースレイヤ[1]が必要です。実際には、データベース名だけでなく、サーバー名、ログイン名、パスワードも保存すれば、いくつかの顧客を同じデータベースサーバーに置くことができます。正しい(難しくない)。

おそらく、この軟膏の最大のフライは、選択されているアプリケーションがPHPセッション情報自体を制御することを決定した場合です。これを解決するにはいくつかの方法があります。 1つは、正しいデータベースに接続するために必要なものを自分のセッションにコピーすることです。もう1つは、選択セッションがセッション管理を個別に、場合によっては手動で行うことです。しかし、データベース情報をクッキーに保存しないでください。これは決まったユーザーが変更できるだけでなく、安全ではない場所(ブラウザ)にセキュリティを委ねています。

[1]適切なデータベース層がありますか?そして、それはあなたがmysql_query()ハンドラの後ろに、特注品かPDOのようなものを持っていることを意味します。

関連する問題