私は現在、かなり珍しい要件を持つプロジェクトに取り組んでおり、それを処理するための最良の方法についてのアドバイスや、ソリューションの構築に役立つ情報へのポインタさえも得たいと思っています。
わかりました、これが私がする必要があることです。アプリケーションはさまざまなタイプのメディア ファイルを保存および管理しますが、アプリケーションの展開ごとにメディア ファイルのメタデータ要件がまったく異なります。
このメタデータには、さまざまなタイプの任意の数のフィールド (1 行のテキスト、複数行のテキスト、チェックボックス、選択された値など) を含めることができ、多くの場合、特に存在と一意性の検証などの検証が必要になります。
アプリケーションは値を簡単に取得できる必要があり、最も重要なことは、これらのフィールドで完全な検索機能を処理できる必要があることです。
私が検討したオプションの 1 つは、データベース テーブルに各メディア ファイルの各メタデータ フィールドのプロパティ名と値が含まれているだけのプロパティ リスト配置を使用することでした。しかし、このソリューションのプロトタイプを作成すると、特にデータベースがかなり大きくなる可能性がある場合、特にレコードの検索と取得には十分に効率的ではないことがすぐに明らかになりました。田畑。また、検索を実行して関連するレコードを取得するためのクエリは、すぐに非常に複雑になりました。
システムが現在使用している別のオプションは、メタデータ構成が前もって定義され、展開中に移行が実行されて標準名のテーブルとモデルが作成され、システムが使用するメディア モデルをそれに関連付けることができます。これは通常は問題なく動作しますが、展開とテストで重大な問題が発生します。
たとえば、デプロイまで構成がわからない場合、単体テストの作成ははるかに困難になります。サンプル構成を作成してその方法でコードをテストすることはできますが、特定の展開の特定の要件をテストすることはできません。
同様に、開発中は現在、構成からメイン フォルダーに移行をコピーして実行し、すべてのテストと開発を行ってから、その移行をロールバックしてメイン フォルダーから削除することを忘れないでください。アプリケーションは標準状態です。これは、バグを修正していて、テストとデバッグの目的でアプリケーションを特定の構成にする必要がある場合に特に困難になります。さまざまな構成を切り替えようとすると、本当に悪夢になります。
理想的には、サーバーの起動時に構成ファイルから検証などを含むテーブルとモデルを動的に作成できるようにしたいです。アプリケーションが現在使用している設定ファイルを変更するだけで、それぞれが独自のテーブルを持つ 1 つのデータベースで複数のメタデータ設定を維持できれば、さらに良いでしょう。
これはRailsで実行できると確信していますが、過去数日間の調査中に、Railsを構築する方法の正しい方向を示すことができる情報がほとんどないため、助けや提案があればよろしくお願いします!