【发布时间】:2013-10-11 15:04:15
【问题描述】:
我有一张封禁原因表:
id | short_name | description
1 virus Virus detected in file
2 spam Spammy file
3 illegal Illegal content
当我禁止某个文件为病毒时,在我的代码中我会这样做:
$file -> banVirus();
将文件id和禁止原因插入到表中:
"INSERT INTO 'banned_files' VALUES (61234, 1)"
我的问题是; 我硬编码了值 1 是否有问题?,表示垃圾邮件文件。
我应该在我的配置中使用定义,如定义('SPAM',1),这样我就可以用定义替换 1 吗?还是根本不重要?
【问题讨论】:
-
你为什么不把它作为一个可选参数?
-
如果您维护了代码,您希望在源代码中看到什么,
SPAM或1? -
对我来说看起来不错,因为您只有 3 种禁令类型,它们很容易记住。如果你有 50 多个,我可能会有不同的想法。
-
不是一个真正的问题,但你可能想在评论中说这个
1对应于你的“禁止原因”表中的一个条目,所以以后的维护者知道在哪里看......并且由于您将插入包装在一个具有描述性名称的函数中,这也很有帮助 -
而不是使用自动递增的主键作为禁止原因 id ...您可以只使用
short_name保持数据库的关系和规范化,并在其他地方使用时为您提供描述性的禁止原因(例如在应用程序中)。
标签: php mysql oop database-schema