是否有一种范例,我可以在一个地方且仅在一个地方更改数据键名称,并由应用程序和数据库正确处理?
我最近求助于使用类常量来映射到数据库字段名称,但我仍然必须使它们与原始数据库键保持一致。
我的意思是,以 PHP 为例,现在我可能会使用
$infoToUpdateUser[ User::FIELD_FIRST_NAME ]
这意味着当我在常量处更改它时,我不必搜索代码来更改对该字段的所有引用。
这种情况出现的另一个领域是参考字段。由于一些早期糟糕的设计决策,我有,例如,这些类型的表:
(表名:primary_key)
- 猫:cat_id
- 狗:dog_id
- parrots : bird_id (记住,糟糕的设计,因此 parrots / bird_id 不匹配)
- 蜥蜴:lizard_id
- ETC
然后假设我有一系列更新记录的表单类。
- 动物形态
- DogForm 扩展了 AnimalForm
- CatForm 扩展了 AnimalForm
- ParrotForm 扩展了 AnimalForm
- ETC
现在我想使用父类 AnimalForm 中的更新函数更新 SQL 数据库中的一条记录,因此我不必在 20 个子类中复制代码。
但是我不知道一种概括更新查询的方法,所以目前每个子类都有一个 idFieldName 成员变量,父类将它插入到查询中,比如
"UPDATE " . $this->table . " SET <data> WHERE " . $this->idFieldName
这样做似乎很草率,但目前我想不出更好的解决方案。
是否有一个设计模型或范例可以链接在一起或抽象数据键名称以供数据库和应用程序共享作为参考?