0

0 個以上の静的値に関連付けられている可能性のあるモデルがあります。たとえば、映画やジャンル (ホラー、アクションなど) です。genresモデルに配列を作成したいのですが、これをデータベースに反映させる最善の方法がわかりません。

pg_searchRails/AR 4 と Postgres をgemと一緒に使用しています。

genresテーブルを作成し、その 2 つの間に結合テーブルを作成するという古典的なルートをたどることができます。genresただし、あまり頻繁に変更されないため、これは少しやり過ぎのように思えます。

genre列挙型を作成し、モデルに の配列を作成することはできますが、genreActive Record がこの種のメカニズムをどの程度サポートしているかはわかりません。

ジャンルやその他の基準 (キーワード、長さ、評価など) に基づいて映画を検索できる必要があります。

ベスト プラクティスやリソースをお寄せいただければ幸いです。より単純な、またはより単純なソリューションがありませんか? 上記のいずれかで、予期しない方法で問題を解決できないことがありますか?

4

1 に答える 1

2

配列ではなく、他のテーブルを使用することをお勧めします。

フリーテキストが必要な場合は、配列で問題ありません。ここでは、本当にリソースが必要です。あなたが「SF」ジャンルを持っていて、誰もSFが何であるかを理解していないことに気付いた後、「SF /幻想」に名前を変更することに決めた場合、すべての映画を繰り返し、SFの名前が使用されているかどうかを確認する必要があります.

外部テーブルを使用すると、それは簡単です。映画にはgenre_id列があり、ジャンル行にはすべての映画を変更するために変更できる名前列があります。

配列の良い使い方は、雰囲気の特徴、革新的な特異性、およびおそらくいくつかの映画では使用されず、十分に編集する必要があるもののリストなど、映画の詳細でアドホックな属性を記述することです。

また、現時点では postgres 配列のサポートが Rails で完全ではないことに注意してください。いくつかの問題に対処する必要があるかもしれません。

于 2013-09-22T13:43:32.940 に答える