あなたのmysqlテーブル構造に依存します:
- テーブルがNORMALIZED の場合、データをシリアライズして保存すると、正規化が壊れます。
しかし、それ以外に、カテゴリを格納するテーブルと、そのカテゴリを参照するキーと値のペアを格納するテーブルの 2 つのテーブルを作成しないでください。
CREATE TABLE Categories (
CID INT,
***
PRIMARY KEY (CID)
)ENGINE=InnoDB;
CREATE TABLE KeyValues (
Category INT,
Key varchar(100),
Value varchar(100,
FOREIGN KEY Category REFERENCES Categories(CID)
)ENGINE=InnoDB;
構造化に応じて、キー値テーブルをさらに正規化できます。テーブルを正規化しているかどうかに依存するため、意図的に主キーを選択しませんでした。自動インクリメントの主キーを追加しても問題ありません。
これにより、データの選択がより簡単かつ迅速になります。データをシリアル化したときに何らかの計算を行う必要がある場合は、最初に PHP 側で取得し、シリアル化を解除して、1 回のクエリで同じことができる計算を行う必要があります。