用户定义的来自db与文件的常量

时间:2012-05-01 00:57:39

标签: php

  1. 我可以在文件中定义常量然后包含它们,或者

  2. 我可以将它们存储在数据库中并播种它们。

  3. 根据您的经验,哪一个更好/更快/更少资源成本...数十,数百,数千定义?

2 个答案:

答案 0 :(得分:3)

这是一个永远存在的问题,因人而异,并且是一种平衡行为。对我来说,这完全取决于数据集的假设大小和静态。在我的应用程序中,我有大约10个代码点,我将引用常量,而不是通过从数据库中提取数据的所有开销。

使用常量的另一个好处是,您可以在整个代码库中引用它们,这有助于减少缺陷并改善语义,例如:

class Ad
{
    const ID_AD_TYPE_BANNER = 1;
    const ID_AD_TYPE_SKYSCRAPER = 2;
}

// Somewhere in app
if (array_key_exists(Ad::ID_AD_TYPE_BANNER, $array)) {

但是有一些弊端?我不愿意称它们为缺点,因为它们并不难解决。首先,如果您的常量是整数,并且您的应用程序曾将这些内容输入表中,您将无法加入“查找”表并将查找值视为查询结果的一部分。相反,您只需要知道查询中1的ID是什么意思。

其次,确保将常量放在常识位置,并尽可能尝试使用命名空间,这样,如果最终忘记它们是什么,就可以轻松找到值。如果你有一个聪明的IDE,它会为你做这件事。还要知道,如果不断变化,您将不得不直接进行代码推送与操纵数据库数据。

我对常量说“是”,如果列表相对较小(<25)并且不易发生变化,但是,如果您的数据不符合这些约束,我建议将它们弹出到数据库中。

答案 1 :(得分:0)

我会说文件会更快,但可能会更大,因为数据库会更慢,必须连接并抓取结果并返回它。我个人会使用一个文件。