我最近被要求重写一个表现不如客户所希望的预订系统。我发现数据库模式/对象映射技术曾经非常不寻常,并且想知道是否有其他人遇到过类似的东西。
旧系统使用大约25个类来处理客户,约会和订单等等,每个类都有一个名为“class_id”的独特属性。
在查看数据库时,每个类都有一个相应的表,但是它们都没有包含任何外键字段,尽管它们必须以某种方式链接,因为应用程序允许客户端执行各种级别的报告。
经过进一步调查后,我注意到数据库中包含另一个名为“application_hierarchy”的表。
该表包含4列,列出了不同记录之间的关系:
例如,如果客户5有三个不同的订单,其ID号为10,11和12:
Customer类是ID 4 Order类是ID 7 所以:
class_id | object_id | parent_class_id | parent_object_id
7 10 4 5
7 11 4 5
7 12 4 5
对于应用程序中的每个单个对象记录,此表中将有大量行,这些行将与大型连接查询组合以创建报告。
尝试将这些数据导入新模式一直是一个绝对的噩梦,主要是因为原作者忽略了哪个类被识别哪个类的ID号!
这是一种常用的技术还是仅仅是PITA的原始开发者?
任何意见/评论都表示赞赏。
感谢。