2010-12-29 11 views
3

私は既存のPerlのWebベースのアプリケーションをアップグレードするために探していると、特定の問題を解決する方法上の任意の提案がある場合は疑問に思って:ダイナミックORM - Perlの

アプリケーションは、それぞれが非常に持っているいくつかのクライアントによって使用されますカスタマイズされたデータセットを提供します。クライアント間のデータセットにはほとんど重なりがありません。しかし、それらはすべて同じソフトウェアをロードして使用します。このクライアントをどのように処理し、それがカスタマイズされたデータセットであるかをソフトウェアに伝える多くの構成ファイルがあります。

本質的に、共通の機能がありますが、それらの機能が動作するデータセットは異なります。私はデータセットをORMに抽象化する方法を探しています。しかし、ほとんどのORMは、裏の共通データセットを期待しているようです。 ORMモジュールを使用するクライアントに基づいて動的にロードするか、または同じベースのORM構造を動的に作成する必要があります。

ソフトウェアの表示/編集/削除機能を提供しますが、 は、テーブル

クライアントB を管理

クライアントは、自動車

ビュー機能負荷の設定ファイルを管理し、関連する各クライアントのカスタムテンプレートファイルがあります彼らが管理しているデータのタイプに変換します。

提案がありますか?

+1

各データベースを独自のクラス名前空間に動的にロードし、クラス全体を管理しなければならない可能性があります。たとえば、DIBx :: Classスタックには、DBIx :: Class :: Schema :: Loaderがあり、これを使用して骨格クラスにロードしたり、スクラッチからクラスを設定したりできます。 – dwarring

答えて

0

Rose::DB::Object(RDBO)を参照してください。

サポートは実行時にLoaderパッケージによってデータベース構造をロードします。 RDBOの著者であるJohn Siracusaは、#rdboの質問に常にirc.perl.orgまたはメーリングリストに返信しています。

また、非常に速く(一度読み込まれた)強力です。あなたがDBアプリケーションをどのようなサンプルアプリケーションよりも複雑にしているなら、本当にそれをお勧めします。