-1

テキストと画像の両方を同じフィールドに保存する必要がありますか? これは、mysql データベースを使用してどのように php に実装できますか? 過去に BLOB を使用して画像を保存しました。この問題にはどのデータ型を使用すればよいですか?

そして、これはどのように機能しますか...?

4

1 に答える 1

5

最初に言うことは、それをしないでください! データベース内の列はアトミックであると想定されています。つまり、列は 1 つの情報のみを保持します。これは、第 1 正規形の基本ルールです。1 つの列に複数のデータ項目を詰め込もうとすると、その規則に違反することになり、後で大きな被害を受けることになります。

理論的には、データベースにアクセスしているフロント エンドを使用して、データを文字列にシリアル化し、それを格納することができます (たとえば、php では、$dataToStore = serialize (array 'Some string', $someData);. 次に、unserialize を使用して、画像データとテキストを別々の項目に抽出します。

しかし、なぜそれをしたいのですか?データベースの設計を本来よりも最適でなくするために行う必要のない余分な作業です。データを保存するテーブルに別の列を単純に追加することの何が問題になっていますか? 1 つはテキスト用、もう 1 つは画像用です。

あなたのアプローチが問題であると思わない場合は、シリアル化されたデータでいっぱいのデータベースで作業するために雇われた人からそれを取ってください。大変な問題です。これにより、データベースの操作がほとんど不可能になります。使用しているスクリプト言語にデータを取り込み、シリアル化を解除してから、何かを行う必要があります。SQL ステートメントを使用してシリアル化されたデータを照会することはできません。

于 2012-07-17T07:57:17.000 に答える