- ベストアンサー
フォーム部品の増加とDB・ソースの変更
- フォーム部品が増えると、DBやソースの変更が必要になることがあります。
- しかし、可変的にDBやソースを変えずにフォーム部品を増やす方法はあるのでしょうか?
- 理想的には、ブラウザ上での設定で自動的に掲示板や発注管理システムを構築したいと考えています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>> フォーム部品が増えても、可変的にDBやソースを変えなくてもよいプログラムはあるのでしょうか? フォームの作成自体は、PHPなら部品数に関係なく汎用的なソースを作るのはさほど難しくないと思いますので、 問題は、DBの扱いと考えます。 アンケートシステムなどフォーム内のパラメータがフレキシブルなシステムで使われる手法では、 1.テーブルを細分化する。 (1件の項目を複数のテーブル内の集合として表現するリレーショナルデータベースの本来の使用方法?) 2.シリアライズする。 (パラメータを全て1つの文字列表現に置き換える) などが良く見受けられます。 1は、RDB設計にそれなりの知識が必要ですが、プロの方々は処理効率や後々データの利用のしやすさからこちらを好むようです。 2は、標準的に必要なパラメータは、DB上に全て専用のフィールドを用意します。さらにもう一つTEXT形式のフィールドを用意しておきます。 標準外のパラメータは全てserializeにより文字列に置き換えてDBに保存します データを利用する場合は、unserializeすれば全て元の変数に戻ります 1つのレコードで変数の数を可変できるため設計が楽です 欠点としてデータ検索などのデータ利用上の処理効率は落ちます。 http://jp.php.net/manual/ja/function.serialize.php http://jp.php.net/manual/ja/function.unserialize.php
その他の回答 (1)
- tom951
- ベストアンサー率30% (29/96)
自分はDB操作用の自作クラス作っているけど 機能としたらベースのプログラムからは連想配列(このキーをDB側のフィールドと同じにして)と値を渡して insert文とupdate文の挿入情報は自動的にSQL文生成されている。 ただしGETやPOSTで受け取ったデータをそのまま渡すのはセキュリティー的に問題があるので各種エスケープ処理は必須です。
お礼
回答ありがとうございました。 できるんですね! スキル的には複雑ですが、そんなクラスがあったら便利。 ぜひ公開お願いしますm(_ _)mw