2

アイテムの仕様ごとに値を保存したいのですが、データベース構造を変更せずに新しい仕様を時間の経過とともに追加できます。

つまり、最終的に次のような PHP 配列を作成します。

$vase['features'] = array('weight'=>10,'height'=>100);

しかし、数日で50個の鍵を手に入れることができるのは誰でしょうか。

$vase['features'] = array('weight'=>10,'height'=>100,'price'=>12,'time'=>1821,...);

通常、データベースにテーブルを追加するだけですが、何十もの列を追加してもうまくいくとは思いません。

JSON配列を格納する「仕様」列を追加してもよろしいでしょうか? つまり、それでうまくいくと確信していますが、そうすべきではない理由や最善の解決策はありますか?

4

3 に答える 3

2

それらがデータベースから直接アクセスする必要のないフィールドであり、それらでフィルタリングする必要がない場合 (これについて十分に確認する必要があります)、問題ありません。あなたが言ったように、それうまくいきますが、実際にはプロジェクトの詳細に依存します.

たとえば、おそらく価格で簡単にフィルタリングできるようにする必要があるため、価格は問題になる可能性があります (できないとは言いませんが、テーブルのように簡単ではありません)。

私がそれを行う方法は次のとおりです。

  • 簡単に拡張できる機能のリストを含む表
  • コンテンツ (または製品) の ID、機能の ID、および機能の値を含むテーブル。

その少しの適応で、機能の一覧表示、機能によるフィルター処理、それらによるグループ化などを簡単に行うことができ、後で製品の構造を定義することもできます。

于 2013-08-11T17:42:59.640 に答える
0

データベース テーブルの列の正確な数がわからない場合は、データを JSON 配列に格納することをお勧めします。これらのデータは、クエリで、グループ化、グループ化、カウントなどの順序で必要としないことを確認してください。

于 2013-08-11T17:44:15.823 に答える
0

自問できる質問は、select、filter、join などの値に対して SQL を操作する必要があるかどうかです。はいの場合は、json オブジェクトまたはシリアル化された php を使用できず、別のテーブルを作成する必要があります。

于 2013-08-11T17:48:02.743 に答える