我正在围绕很多分层数据编写应用程序。目前,层次结构是固定的,但未来可能会将新项目添加到层次结构中。 (请让他们离开)应该将核心应用程序配置存储在数据库中,如果有的话应该采取什么措施来保护它们?
我目前的应用程序和数据库设计是相当通用的,没有任何处理层次结构中的特定节点的硬编码,除了验证和查找函数写入从每个节点的特定数据库检索外部数据。从设计的角度来看,这让我感到满意,但我很紧张地认识到整个应用程序依赖于数据库中的一些记录。我也很沮丧,我必须用数据库触发器而不是外键约束强制执行数据完整性的某些方面(例如,层次结构中的几个不同节点都有自己的专有ID,并将它们存储在单个列中,当加上节点ID可以用来定位外部数据)。
我开始怀疑将这些已知节点简单硬编码到系统中是否合适,以便它更“安全”并且通用性更低。
如何知道什么时候应该硬编码,什么时候应该是配置项?这是否仅仅是对清晰度/安全性的成本效益分析,而不是稍后的工作量较少,还是我缺少一些我应该用来确定这是否合适的指标。
我正在采取的保护这些有价值配置的步骤是添加防止更新/删除的触发器。此应用程序使用的数据库用户只能通过存储过程操作数据。我还可以做些什么?
很好的回应! – Vinnie 2010-03-11 19:36:33