我可以在文件中定义常量然后包含它们,或者
我可以将它们存储在数据库中并播种它们。
根据您的经验,哪一个更好/更快/更少资源成本...数十,数百,数千定义?
答案 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)
我会说文件会更快,但可能会更大,因为数据库会更慢,必须连接并抓取结果并返回它。我个人会使用一个文件。