每个网站都应该有选项,可以通过控制面板进行更改。我的新项目将会有这个。但是,我很好奇哪种方法可以存储这些选项。
我已经测试了这些,虽然不是很彻底,但我很可能找不到长期的问题或好处。
使用包含字段key
和value
的MySQL表,其中每列都有
是一个新的键/值对。这样做的缺点是MySQL可以
事实上,在每个要获取的页面之前需要一个循环
数据库中的选项并将其解析为数组。
使用带有每个值和单个记录字段的MySQL表。 这样做的缺点是每个新选项都需要一个新的领域, 这不是MySQL表的标准用法,而是一个很大的好处 是它需要一个函数将它带入PHP索引 阵列
使用包含序列化形式的options数组的平面文件,
使用PHP函数serialize
和unserialize
。主要的
这个方法的问题是我必须首先遍历
文件,读入整个文件,序列化可能很慢,所以它
随着更多选项的创建,它会变慢。它还提供一个小的
对数据进行模糊处理的层次。
使用ini文件。 Ini解析器相当快,而且这个选项 可以轻松传递网站配置。但是,作为 上面,我将不得不遍历ini,并使用ini 使用PHP的文件通常是未使用的。
其他格式,例如XML
和JSON
,都已经过考虑
太。但是,它们都需要某种存储空间,而且我主要是存储空间
好奇每种存储的好处。
所以我要寻找的基本功能是速度,安全性和可移植性。我希望配置不是人类可读的(因此,未加密的平面文件很糟糕),易于移植(排除MySQL),并且几乎为零但持续的性能影响(排除大多数选项)。
我不是要求人们为我编写代码,或类似的东西。我只需要第二双眼睛来解决这个问题,可能会提出我从未考虑过的问题。 谢谢你的帮助
谢谢你 - 丹尼尔。
答案 0 :(得分:0)
使用带有字段键和值的MySQL表,其中每列是a 新的键/值对。这样做的缺点是MySQL可能很慢, 事实上,在每个页面之前需要一个循环来获取 数据库中的选项并将其解析为数组。
这是错误的。除非你计划存储几亿个配置对,否则你会很好。如果您担心使用此方法的性能,只需缓存查询(并仅在表中进行更改时擦除缓存)。 这也将为您提供最大的灵活性,易用性等。