Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 序列化为文件还是使用数据库作为下拉列表值?_Php - Fatal编程技术网

Php 序列化为文件还是使用数据库作为下拉列表值?

Php 序列化为文件还是使用数据库作为下拉列表值?,php,Php,在我的php应用程序中,我为不同的数字下拉列表使用了许多不同的值,这些值应该可以从后端进行编辑,但编辑频率较低。为每个下拉列表使用一个表是否是一种更好的方法,这将使表的数量变得巨大。或者使用文件将下拉列表值保存为序列化数组。文件访问比数据库访问昂贵吗?我在这里寻求建议。文件访问比数据库访问便宜,尽管序列化和反序列化相当昂贵 为什么不将它们存储在某些特定的PHP文件中,数组将是最快的。文件访问将比数据库访问便宜,尽管序列化和反序列化相当昂贵 为什么不将它们存储在某些特定的PHP文件中,数组将是最快

在我的php应用程序中,我为不同的数字下拉列表使用了许多不同的值,这些值应该可以从后端进行编辑,但编辑频率较低。为每个下拉列表使用一个表是否是一种更好的方法,这将使表的数量变得巨大。或者使用文件将下拉列表值保存为序列化数组。文件访问比数据库访问昂贵吗?我在这里寻求建议。

文件访问比数据库访问便宜,尽管序列化和反序列化相当昂贵


为什么不将它们存储在某些特定的PHP文件中,数组将是最快的。

文件访问将比数据库访问便宜,尽管序列化和反序列化相当昂贵


为什么不将它们存储在某些特定的PHP文件中,数组将是最快的。

使用数据库表,但缓存(如使用APC或memcache)下拉列表,并设置编辑器在进行更改时重建缓存的条目

使用数据库表,但缓存(如使用APC或memcache)下拉列表,并将编辑器设置为在进行更改时重新生成缓存条目

您不必为每个下拉列表使用一个表,您可以将它们全部放在一个表中。如果所有的表都具有相同的结构,那么只需创建一个表并添加一个字段来指示记录用于哪个下拉列表


我建议使用数据库,这样可以更好地限制访问。如果只使用文件,您也不必处理用户可能破坏数据结构的问题。数据库调用没有那么昂贵。连接到数据库的行为比查询更昂贵。如果您已经连接,则不需要调用额外的查询。

您不必为每个下拉列表使用一个表,您可以将它们全部放在一个表中。如果所有的表都具有相同的结构,那么只需创建一个表并添加一个字段来指示记录用于哪个下拉列表

我建议使用数据库,这样可以更好地限制访问。如果只使用文件,您也不必处理用户可能破坏数据结构的问题。数据库调用没有那么昂贵。连接到数据库的行为比查询更昂贵。如果您已经连接,则额外的查询不会成为问题

文件访问比数据库访问昂贵吗

这不能具体回答。这在很大程度上取决于您的配置。但是,如果您已经在数据库中存储了大部分(如果不是全部)数据,那么如果数据库更昂贵,我甚至更喜欢它。因为您将所有数据放在一个地方,这样在您需要更改内容时更便宜。那你的东西结构就更好了

为每个下拉列表使用一个表是否是一种更好的方法,这将使表的数量变得巨大。或者使用文件将下拉列表值保存为序列化数组

还有第三种选择,您可以将下拉列表的序列化值存储到数据库中。这不是一个很好的数据库设计,但是工作得很好。如果您有问题要决定和/或希望以后更改,首先创建一组函数,您可以在代码中使用这些函数来读取和更新具有规范化界面的下拉框存储:

function dropdown_list_get($ID)
{
    # however you retrieve it.
    return array(/* key => value pairs of dropdown value => label */);
}

function dropdown_list_set($ID, array $list)
{
    # however you store it, 
    # $list array must be the same format as in dropdown_list_get.
}
然后,您已经实现了从脚本逻辑中存储更多解耦的方式,您可以在稍后更改下拉列表的存储方式,而不必更改脚本的其余部分

文件访问比数据库访问昂贵吗

这不能具体回答。这在很大程度上取决于您的配置。但是,如果您已经在数据库中存储了大部分(如果不是全部)数据,那么如果数据库更昂贵,我甚至更喜欢它。因为您将所有数据放在一个地方,这样在您需要更改内容时更便宜。那你的东西结构就更好了

为每个下拉列表使用一个表是否是一种更好的方法,这将使表的数量变得巨大。或者使用文件将下拉列表值保存为序列化数组

还有第三种选择,您可以将下拉列表的序列化值存储到数据库中。这不是一个很好的数据库设计,但是工作得很好。如果您有问题要决定和/或希望以后更改,首先创建一组函数,您可以在代码中使用这些函数来读取和更新具有规范化界面的下拉框存储:

function dropdown_list_get($ID)
{
    # however you retrieve it.
    return array(/* key => value pairs of dropdown value => label */);
}

function dropdown_list_set($ID, array $list)
{
    # however you store it, 
    # $list array must be the same format as in dropdown_list_get.
}

然后,您已经实现了从脚本逻辑中存储更多解耦的方法,您可以在以后更改下拉列表的存储方式,而不必更改脚本的其余部分。

因为我想让我的客户端可以轻松地进行更改。数据库将是最简单的,然后只需使用
类型
字段,因为我想让我的客户机进行更改变得简单。数据库是最简单的,然后只需要创建一个表,用
类型
字段来存储它