PHP选项地图讨论

时间:2012-05-07 08:48:09

标签: php map

每个网站都应该有选项,可以通过控制面板进行更改。我的新项目将会有这个。但是,我很好奇哪种方法可以存储这些选项。

以下是我已知的方法:

我已经测试了这些,虽然不是很彻底,但我很可能找不到长期的问题或好处。

  1. 使用包含字段keyvalue的MySQL表,其中每列都有 是一个新的键/值对。这样做的缺点是MySQL可以 事实上,在每个要获取的页面之前需要一个循环 数据库中的选项并将其解析为数组。

  2. 使用带有每个值和单个记录字段的MySQL表。 这样做的缺点是每个新选项都需要一个新的领域, 这不是MySQL表的标准用法,而是一个很大的好处 是它需要一个函数将它带入PHP索引 阵列

  3. 使用包含序列化形式的options数组的平面文件, 使用PHP函数serializeunserialize。主要的 这个方法的问题是我必须首先遍历 文件,读入整个文件,序列化可能很慢,所以它 随着更多选项的创建,它会变慢。它还提供一个小的 对数据进行模糊处理的层次。

  4. 使用ini文件。 Ini解析器相当快,而且这个选项 可以轻松传递网站配置。但是,作为 上面,我将不得不遍历ini,并使用ini 使用PHP的文件通常是未使用的。

  5. 其他格式,例如XMLJSON,都已经过考虑 太。但是,它们都需要某种存储空间,而且我主要是存储空间 好奇每种存储的好处。

  6. 这些是我特定的理想主义要求:

    所以我要寻找的基本功能是速度,安全性和可移植性。我希望配置不是人类可读的(因此,未加密的平面文件很糟糕),易于移植(排除MySQL),并且几乎为零但持续的性能影响(排除大多数选项)。

    我不是要求人们为我编写代码,或类似的东西。我只需要第二双眼睛来解决这个问题,可能会提出我从未考虑过的问题。 谢谢你的帮助

    谢谢你 - 丹尼尔。

1 个答案:

答案 0 :(得分:0)

  

使用带有字段键和值的MySQL表,其中每列是a   新的键/值对。这样做的缺点是MySQL可能很慢,   事实上,在每个页面之前需要一个循环来获取   数据库中的选项并将其解析为数组。

这是错误的。除非你计划存储几亿个配置对,否则你会很好。如果您担心使用此方法的性能,只需缓存查询(并仅在表中进行更改时擦除缓存)。 这也将为您提供最大的灵活性,易用性等。