存储以下类型的列表通常是更好的方法:
array(
'category'=>array(
'key'=>'value',
'key'=>'value'
),
'category'=>array(
'key'=>'value',
'key'=>'value'
)
);
存储这些列表的更有效方法是 lists.php
文件还是 MySQL 中的序列化条目?
最佳答案
这取决于你的 mysql 表结构:
- 如果您的表是NORMALIZED,那么序列化数据并存储它会破坏规范化。
但除此之外,为什么不创建两个表,一个存储类别,另一个存储引用该类别的键值对。
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 端获取数据,将其反序列化并进行计算,您只需一个查询即可完成相同的操作。
关于php - 存储列表 : in files or MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654897/