Railsにカスタムフィールドを実装するという現在の計画についてのフィードバックを探しています。私は一般的にレールとアプリ開発に不慣れであり、より経験豊富な個人からのコメントをいただければ幸いです。
バックグラウンド
アプリ:食べ物や飲み物の試飲を追跡します。
私がモデル化しようとしているもの:
- ユーザーが新しいサンプルタイプを作成します。
- 彼らはそれを「ワイン」と呼んでいます
- 彼らは会社を決定し、次の属性を追跡したいと考えています:原産地、ブドウの種類、会社、標高、気温の維持など。
- 私のデータベースが作成したサンプルタイプに関する唯一の仮定は、データベースに名前があるということです。(例:コーヒー、ワインなど)残りはすべてユーザーが指定したカスタムフィールドです。
これでサンプルタイプが作成されました。
- ユーザーはサンプルタイプのワインのサンプルの作成を開始します。
- 彼らはサンプルの作成を選択し、ワインの種類を選択します。
- 入力する必要のあるフィールドは、前に指定したフィールドです。
- Originではフランス、Grapeタイプではシャルドネなどを入れました。
-
私のアプローチの計画は次のとおりです。
ユーザーがサンプルタイプを作成するときは、カスタムフィールドを配列または文字列形式で保存し、dataという列の下に保持します。
SampleType
name
wine
データ
[origin, grape_type, company, ...]
ユーザーがWineタイプのサンプルを作成する場合:サンプルタイプのwineを検索します。データ列のキーごとに、フォームフィールドが作成されます。ユーザーがデータを送信すると、すべてのカスタムフィールド名とそれに対応するデータのハッシュが作成されます。私はそれをシリアル化し、次のようなデータ列のハッシュに格納します。
サンプル
タイプの
ワイン
データ
{ origin: "France", grape_type: "Pinot Grigio, ... }
現時点での私の計画は、PostgreSQLのhstoreを使用してデータ列にハッシュを実装することです。
私の質問は次のとおりです。
- これは私がやろうとしていることの有効な解決策ですか?
- ユーザーが必要なカスタムフィールドを変更すると、問題が発生しますか?
- 私が考慮に入れるべき他の懸念はありますか?
- このタイプのモデルには、mongodbやその他のそのようなdbの方が適していますか?
私は参照として次のリンクを使用しています: http ://schneems.com/post/19298469372/you-got-nosql-in-my-postgres-using-hstore-in-rails http://blog.artlogic .com / 2012/09/13 / custom-fields-in-rails /
他の多くのスタックオーバーフローの投稿と同様に、しかし、私が上で述べたようにそれを使用している人はいないようです。
コメントをいただければ幸いです。