【发布时间】:2023-03-18 19:01:01
【问题描述】:
我正在围绕大量分层数据编写应用程序。目前层次结构是固定的,但将来可能会向层次结构中添加新项目。 (请让它们成为树叶)
我当前的应用程序和数据库设计相当通用,处理层次结构中的特定节点的任何内容都没有硬编码,除了为从每个节点的特定数据库检索外部数据而编写的验证和查找函数。从设计的角度来看,这让我很满意,但是当我意识到整个应用程序依赖于数据库中的少数记录时,我感到很紧张。我也很沮丧,我必须使用数据库触发器而不是外键约束来强制执行数据完整性的某些方面(例如,层次结构中的几个不同节点具有自己的专有 ID,我将它们存储在单个列中,再加上节点ID可以用来定位外来数据)。
我开始怀疑将这些已知节点简单地硬编码到系统中是否合适,这样它会更“类型安全”且不那么通用。
如何知道什么时候应该硬编码,什么时候应该是配置项?这只是对现在的清晰度/安全性与以后减少工作量的成本效益分析,还是我错过了一些我应该用来确定这是否合适的指标。
我为保护这些有价值的配置而采取的步骤是添加阻止更新/删除的触发器。此应用程序使用的数据库用户只能通过存储过程操作数据。我还能做什么?
【问题讨论】:
标签: database architecture configuration hierarchical-data