|
|
1
2
我曾经使用过一个非常通用的数据库。这是管理一个巨大的系统的一种明智的方法,需要频繁地改变需求,突然出现意想不到的互连。 不过,执行过程是三种表:存储特定数据类型的主要“通用”表、一个链接表(表自、链接自、表至、链接至、记录类型)和一个表表表,定义存储的数据类型以及存储方式。 当然,这会产生一些开销,但这会被引擎定制所抵消,因为引擎定制确实加快了一般请求的速度,并使复杂请求保持合理(而且很少)。 所以,虽然我同意在一般情况下,这是一个反模式,但在某些情况下,这是正确的做法。一个特定的场景是,当系统是一个通用平台时,非技术人员通过将通用块组合在一起来创建新的服务。块连接到“数据类型”表,但是如何使用这些表(以及如何填充块)留给用户。 |
|
|
2
3
这让我想起 Inner Platform Effect . 基本上,数据库被简化为第二个数据库系统,在其中实现了具体的类型。 |
|
|
3
1
除非它是针对某个通用域,否则我会说它听起来确实像反模式。与通常映射到关系模型的对象/关系/对象进行比较,其中大多数表表示一些实际的域实体。这更直观,更容易理解和维护,并且不需要所有的开销(在编码和执行中)。 |