代码之家  ›  专栏  ›  技术社区  ›  Pablo Castilla

通用模型是反模式吗?

  •  3
  • Pablo Castilla  · 技术社区  · 16 年前

    现在我有了一些以前没有见过的东西:数据库真的是通用的。例如:我们有一个通用的类型:device,它与一个自定义属性表相关,而不是具体的类型。

    不幸的是,模型在其实体上表示这些表,因此模型根本不讨论业务。

    最后,编程是非常令人困惑的:没有人设计或定义了应该在通用表中的自定义属性,因此很难知道把什么放在哪里。您只需检索一个属性就需要很多代码。

    您认为具有通用模型的通用数据库是某种反模式吗?有专业人士吗?

    3 回复  |  直到 16 年前
        1
  •  2
  •   SF.    16 年前

    我曾经使用过一个非常通用的数据库。这是管理一个巨大的系统的一种明智的方法,需要频繁地改变需求,突然出现意想不到的互连。

    不过,执行过程是三种表:存储特定数据类型的主要“通用”表、一个链接表(表自、链接自、表至、链接至、记录类型)和一个表表表,定义存储的数据类型以及存储方式。 当然,这会产生一些开销,但这会被引擎定制所抵消,因为引擎定制确实加快了一般请求的速度,并使复杂请求保持合理(而且很少)。

    所以,虽然我同意在一般情况下,这是一个反模式,但在某些情况下,这是正确的做法。一个特定的场景是,当系统是一个通用平台时,非技术人员通过将通用块组合在一起来创建新的服务。块连接到“数据类型”表,但是如何使用这些表(以及如何填充块)留给用户。

        2
  •  3
  •   Ozan HELPY    16 年前

    这让我想起 Inner Platform Effect . 基本上,数据库被简化为第二个数据库系统,在其中实现了具体的类型。

        3
  •  1
  •   Konrad Garus    16 年前

    除非它是针对某个通用域,否则我会说它听起来确实像反模式。与通常映射到关系模型的对象/关系/对象进行比较,其中大多数表表示一些实际的域实体。这更直观,更容易理解和维护,并且不需要所有的开销(在编码和执行中)。

    推荐文章