这是一种常见的数据库设计/ OO Mapping技术吗?

时间:2010-07-09 10:17:50

标签: schema orm relational-database

我最近被要求重写一个表现不如客户所希望的预订系统。我发现数据库模式/对象映射技术曾经非常不寻常,并且想知道是否有其他人遇到过类似的东西。

旧系统使用大约25个类来处理客户,约会和订单等等,每个类都有一个名为“class_id”的独特属性。

在查看数据库时,每个类都有一个相应的表,但是它们都没有包含任何外键字段,尽管它们必须以某种方式链接,因为应用程序允许客户端执行各种级别的报告。

经过进一步调查后,我注意到数据库中包含另一个名为“application_hierarchy”的表。

该表包含4列,列出了不同记录之间的关系:

  1. class_id - 识别记录类型
  2. object_id - 在相应的表中引用了记录的id
  3. parent_class_id - 识别相关记录的记录类型
  4. parent_object_id - 在相应的表中引用了父记录的id
  5. 例如,如果客户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的原始开发者?

    任何意见/评论都表示赞赏。

    感谢。

1 个答案:

答案 0 :(得分:1)