这通常是存储以下类型列表的更好方法:
array(
'category'=>array(
'key'=>'value',
'key'=>'value'
),
'category'=>array(
'key'=>'value',
'key'=>'value'
)
);
存储这些列表的更有效方法是lists.php
MySQL 中的文件还是序列化条目?
这通常是存储以下类型列表的更好方法:
array(
'category'=>array(
'key'=>'value',
'key'=>'value'
),
'category'=>array(
'key'=>'value',
'key'=>'value'
)
);
存储这些列表的更有效方法是lists.php
MySQL 中的文件还是序列化条目?
那么取决于你的mysql表结构:
但除此之外,为什么不创建两个表,一个存储类别,另一个存储引用该类别的键值对。
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 端抓取,取消序列化并进行计算,您可以通过一个查询来执行相同的操作。
我建议你使用mysql,更易于维护,并且可以轻松挑选出你需要的行,而无需将整个数组加载到内存中。您也可以尝试使用像 mongoDB 这样的 nosql 数据库。
除非需要,否则不要使用数据库,它会增加不必要的开销、复杂性并引入新的故障点。在这种情况下,我会将列表编码为 PHP 源数组。它将更快并且更容易实现 - 您可以在几秒钟内启动此代码。我认为在这种情况下使用数据库没有任何优势。存储 600 个元素的数组所需的开销可以忽略不计。如果您后来发现数组变得太大而无法合理,或者需要经常更改,您可以将它移到数据库中。不要过度设计它。