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

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

根据您的经验,哪一个是更好/更快/更便宜的资源,比如说..数十、数百、数千个定义?

4

2 回答 2

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,它会为你做这件事。也知道如果一个常量发生变化,你将不得不做一个代码推送 vs 直接操作数据库数据。

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

于 2012-05-01T01:26:51.227 回答
0

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

于 2012-05-01T01:04:52.610 回答