0

テーブル内にレコードのグループがあり、2つのフィールドのみがレコードごとに異なり、残りのフィールドは同じままである場合があります。これには、外部キーの関連付けを介してテーブルで分割することによる正規化が必要です。しかし、Ruby-on-Railsでは、モデルの作成を意味します。それで、ディスクスペースの使用を減らすことはまだ可能ですか?

1つの列の複数の値をレコードに格納するには、その列が任意のタイプの配列である必要があるためです。ただし、フィールドを:arrayタイプとして宣言すると、エラーが発生します。それで、それを回避する方法はありますか?

4

1 に答える 1

1

モデルを生成した後、モデルのファイルを開きます。フィールドごとに1行挿入します。

シリアル化:field_name

ただし、シリアル化するフィールドがタイプであることを確認してください

:文章

また

:ストリング

それらがそのようなプリミティブデータ型ではない場合、つまり、

:日付時刻

その後、エラーが返されます。

このステップは全体として完了していません。モデルレベルのストレージでは、「--- \ n-」で始まる文字列として格納されるため、逆シリアル化という1つの補完的な手順を実行する必要があります。これは、配列型の操作には適していません。

モデルからデータを読み取るときに、次の手順を実行する必要があります。

YAML.load(field_name)

ここで、field_nameは、シリアル化されたフィールドを指します。

上記の手順では、通常の配列操作を実行できる配列が返されます。

于 2012-10-22T09:20:02.590 に答える