0

動的に表示する次の情報があります。

製品 XYZ

非常に素晴らしい

とても良い

とてもかっこいい

非常に優れている、非常に優れている、非常に優れているというのは、特定の製品の利点、テキスト、説明の利点であり、通常は箇条書きの形式で表示されます。

それらを利点と呼ばれる別のテーブルに保存するのは意味がないと思います。なぜなら、表示されていても他のものに慣れることは決してないからです。

そこで、この製品テーブルに varchar255 フィールドを作成し、次のように値を挿入できるようにすることを考えていました。

とてもいい;とても良い;とてもかっこいい

自由形式のテキスト入力フィールド。

次に、それらをphp配列に分割します。

私の質問は次のとおりです。それはありますか、より良いアプローチですか?

4

2 に答える 2

2

これらの解決策は私の頭をよぎります:

  • ルックアップ プロダクトの利点が必要で、利点が 64 未満の場合、DB のインデックスは属性にある必要があり、SETデータ型を使用する必要があります。さらに、使用するスペースを節約できます。

  • インデックスが必要なく、利点が漠然とした説明である場合は、あなたのアプローチは問題ないと思います。

  • これらの組み合わせが有限である場合は、これらすべての組み合わせで追加のテーブルを作成し、組み合わせ ID だけを製品テーブルに挿入できます。挿入するのは難しいですが (組み合わせが既にテーブルにあるかどうかを確認し、最終的に新しい組み合わせを挿入してその ID を製品テーブルに書き込みます)、読みやすいです。

  • 私が働いていた会社では、表のアプローチの利点1、利点2 ...利点N列も使用しました。これは 2NF ではありませんが、(コメントで指摘したように) ユーザーにこれらの値を直接入力してもらいたい場合は、フォームとKISSに有利 1、有利 2 ... 有利 N 入力フィールドを作成するだけです。

于 2012-09-30T09:23:48.803 に答える
1

あなたのテキストvery nice, very good, very coolConstant製品ごとに変化していない場合、私は次のようなものを使用します:

// text from database, '-' means nothing
$a = 'NGC-------';

if ($a[0] == 'N')
    echo 'Very Nice';

if ($a[1] == 'G')
    echo 'Very Good';

// and so on ...

ところで、データベースのスペースを大幅に節約できますが、それ以上のことはありません。:)

于 2012-09-30T09:20:07.843 に答える